这两天看了三篇介绍文章:
An Extended Look at the Profile Object - Part 1
http://aspalliance.com/721
An Extended Look at the Profile Object - Part 2
http://aspalliance.com/731
An Extended Look at the Profile Object - Part 3
http://aspalliance.com/739
User Profile对象就是asp.net中提供的自动保存和读取访问用户的信息对象模型,支持匿名访问和授权访问用户.
通过配置web.config,即可在WEB应用中使用中,而不需要单独的编程.
与session的主要区别是profile对象是强类型的,每个属性都有类型,使用时不需要类型转换,另外,即使关闭IE或重启应用,profile对象都可以使用,因为它已经被保存到DB中.
针对profile对象中,在web.config可以有三种配置方式,
1. 简单方式,直接定义某个对象的属性, 如人的姓名/年龄等属性, 此时在程序中即可通过Profile.Name, Profile.Age来引用;
2. 以group的方式定义,如学生组Student,此时在程序中可以通过Profile.Student.Name, Profile.Student.Score来引用;
3. 自定义Profile的派生对象, 与第二种类似,只是可以创建更复杂的对象, 但这些对象必须支持[Serialize]属性, 以便能被asp.net profile框架自动保存进DB.
缺省,profile的对象是存在sql express DB中,即对应的WEB应用中的App_Data/aspnetdb.mdf.
可以通过修改web.config中的connectionStrings来指向不同的sql server的DB.
当然,前提是这个DB由{Drive Letter}:\Windows\Microsoft.NET\Framework\[.Net Framework]\aspnet_regsql.exe来创建.
对于简单的站点应用,使用profile对象到是个不错的方法,省去了用户管理和session管理等功能, 只需要关心业务功能即可.
但对于复杂的应用而言, 除派生profile对象满足需求之外, 到是可以研究一下profile的实现机制, 从而实现自己的用户及权限管理.