建立和使用用户资料

ASP.NET2.0提供哦你了内置的用户资料管理功能----开发人员只需要对用户资料中应包含的内容进行配置即可。这些配置在web.config文件的<profile>中完成。

View Code
1 <system.web>
2 <profile>
3 <properties>
4 <add name="FavoriteTheme" defaultValue="主题1" type="String"/>
5 <add name="BirthDate" type="DateTime"/>
6 </properties>
7 </profile>


程序运行时,会为Page类动态添加Profile属性,该属性返回的是ProfileCommon类型的对象(从System.Web.Profile.ProfileBase继承)

在VS2008中,如果你新建的是web site的话,那么在你使用profile的时候,系统就会自动生成一个profileCommon类。但是,如果你使用的是web application的话,这个profileCommon类没有办法自动生成的

(建立Web Site的用法:)

(建立 Web Application项目的用法)

因为:这些代码只用于登录了的注册用户,如果需要对没有登录的用户保存用户资料值,可以通过在web.config添加下面的代码来显示地启用匿名身份。

<anonymousIdentification enabled="true"/>
然后,必须指定匿名用户能够使用哪些属性。可通过设置allowAnonymouse=true来达到这个效果。
<add name="FavoriteTheme" allowAnonymous="true" defaultValue="主题1" type="String"/>

如此,再运行,FavoriteTheme可以被赋值了!

现在,我们看看已注册用户的情况:先看看目前有哪些用户?(可以参考上篇博客 http://www.cnblogs.com/netxiaochong/archive/2011/12/25/2301024.html)

我们实现当下来选中某个用户的时候,获得这个用户相关的资料内容。ddlUsers.AutoPostBack设置为true

运行发现,仍然有异常,还是提示不能为匿名用户为BirthDate属性赋值。分析发现:Page_Load事件中,
第一次运行页面时,能访问该页面的总是匿名用户。需要对代码进行改动。 

注意:图中阴影部分。测试运行没有异常!但是切换用户时,没有看到对应的用户资料!(出现逻辑错误!
再次检查,进行相应修改:(如果保存的不是当前用户的资料,必须显示地调用ProfileCommon类提供的Save方法实现真正存储其他用户资料

运行正常!如果需要给现有的数据库实现用户配置功能,可运行命令:

aspnet_regsql -E -S <ServerName> -A p -d <DatabaseName>

posted @ 2011-12-26 20:37  net小虫  阅读(193)  评论(0编辑  收藏  举报