文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>ASP.NET用户个性化设置Profile——配置 - 建站学

ASP.NET用户个性化设置Profile——配置 - 建站学

时间:2010-08-30  来源:缘分星空

  ASP.NET 2.0除了提供了Membership身份验证机制之外,还提供了一种用户个性化设置的机制,称为Profile。Profile可以和Membership结合起来,存储用户自定义数据。在Profile中可以存储各种类型的数据,包括最基本的int、double类型,也可以是复杂的用户自定义类型,比如购物车、用户信息等。

  Profile和Session类似,都是用来存储用户自定义数据,但是二者也有本质的区别:

  1.Session只能够短暂的保留用户数据(默认为20分钟),但是Profile可以持久的保存,因为二者的存储介质不同,Session默认是存放在内存当中的,而Profile是存放在数据库中。虽然说Session可以通过配置使之保存在状态服务器或者数据库当中,但还是有很大的区别。

  2.Profile是强类型的,而Session仅仅是一个项集合而已。并且VS对Profile提供了智能感知的支持,使用方便。

 

  下面来看看如何使用Profile,首先第一步和Membership一样,也是添加数据库支持,还是和Membership一样,如果之前按照前面说的添加过了,在这里直接开始第二步,就是配置。若没有,则参考前面的文章添加数据库支持。将下面代码复制入web.config的system.web节点之下:

<profile enabled="true" defaultProvider="SqlProvider">
  <providers>
      <add name="SqlProvider" type="System.Web.Profile.SqlProfileProvider" connectionStringName="ConnectionString" applicationName="TestMembership"/>
  </providers>
  <properties>
      <add name="test" type="String" allowAnonymous="true"/>
  </properties>
</profile>

 

  这个配置大多数的属性和Membership中的含义是一样的,我们只是说明一下特有的属性。在这个配置当中有Providers和Properties节点,其中Providers节点之前在配置Membership中了解过了,现在介绍一下properties节点:

  在这个节点下,add标签的作用就是添加一个“属性”,name属性就是“属性”的名字,type就是“属性”的类型,这个类型可以是int、double等简单数据类型,也可以是购物车类等用户自定义数据类型,不过需要注意的是,如果为“类”类型,则该类必须可以序列化,就是在类的上面添加[Serializable]特性。allowAnonymous这个属性指定用户在匿名状态下,是否可以设置该属性。

 

  好了,配置完毕,我们就可以在页面上使用Profile了,建立一个页面,在页面上添加一个button双击在button的click事件当中写下如下代码:

Profile.test = "123123";

  这个Profile.test就是我们在前面properties节点下添加的“属性”,类型为string类型。

  浏览这个页面,点击button,看下效果,哈!出错了!错误提示如下:

  配置文件属性“test”允许匿名用户存储数据。这要求启用 AnonymousIdentification 功能。

 

  这是因为ASP.NET默认情况下不允许匿名用户,很简单,我们简单的设置一下,允许使用匿名用户即可,还是在web.config中system.web节点下添加一段配置:

<anonymousIdentification enabled="true"/>

  ok,现在再来浏览下页面,点击button试试?没有任何反应?这就对了!

  我们再次新建一个页面,在这个页面的page_load事件当中添加一句Response.write(Profile.test);

  完事,我们先浏览第一个页面,点击button,执行了Profile.test=“123123”;这段代码,然后关闭浏览器,再打开第二个页面,可以看到,我们在第一个页面中存入的“123123”这个字符串,在第二个页面显示出来了。

 

  原理很简单:当我们打开了anonymousIdentification功能后,ASP.NET会给每个用户分配一个AnonymousID,保存在Cookie中。如图:

  这是Cookie中存储的内容,.ASPXANONYMOUS这是默认的Cookie名称,可以在web.config中的anonymousIdentification节中CookieName属性中设置自己的Cookie名字。

  这是在调试状态下,得到的AnonymousID

  这是数据库aspnet_Users表中存储的内容,注意UserName和IsAnonymous字段。

  这是数据库中aspnet_Profile中的内容,可以看到,我们test属性中的内容为:123123,PropertyNames字段中test:S:0:6的含义大家应该猜出来了吧!test是属性名,S代表的String类型,0:6代表PropertyValuesString字段中的从第0位到第6位的内容。

  这样,当该用户使用这台电脑再次访问网站,网站便可以根据这个Cookie中的AnonymousID来识别出用户的身份,再通过AnonymousID从aspnet_Profile表中,便可以取出用户上一次保存的数据。

 

  ok,以上便是匿名状态下的Profile。当然,如果我们不需要匿名,而要求用户登录后才能保存数据的话,那么就没上面这么麻烦了,直接设置allowAnonymous="false"即可,不需要去添加anonymousIdentification 配置。这样,该属性只能在用户登录状态下访问,未登录去访问该属性就会报错。

 

  本篇文章简单的介绍了下Profile在实际项目中的应用,大家可以照着试一下,先有一个感性认识,下篇继续,会有一个小的项目,来完整的演示一下Profile的应用。


leather directorystart charcoal portraits businessnordstrom brandretro car postersroyal caribbean salarybest winter jackets for mencheap xoxo handbagseasy cruise mediterranean cruisesfind cruise line jobsmiche bag distributorblack italian leathersmall resortsexhibition posters fine artbusiness jokes of the daydesigner leather beltslouis vuitton shoes on salesmart brown handbagchaps coatspurple suede bagsmonet works artmust have purses 2009pokemon online gamesphoto printing canvasgood travel luggagefaux leather coatanimal hideshollland america cruisesunique purses and handbagsclear plastic shopping bagsbest deals last minute cruisesbilinga beach motelfaux designer pursesemployment in cruisemonogram ellipse backpackwhat time to board cruise shipholland america cruise tourspainting pictures kidsleather tools accessorieswomens leather beltbahamas beachfront rentalsall inclusive mediterranean cruises2009 princess cruisesrowan knitting patterns onlineduffel bag patternmen designer jacketscheap trendy sunglassesmonogrammed paper bagspearl art craft suppliescan you spray paint wooddents mens leather gloves Replica lv Hangbags Replica Hangbags Hangbags replica handbags replica handbags replica handbags replica handbags usb cable usb cable usb cable usb cable
相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载