个性化用户配置,成员资格管理和角色管理在ASP.NET2.0的新特性中占有非常重要的地位。从ASP.NET2.0三层技术特征来划分,他们都属于服务于APIs层(附图1)
附图1
1
了解并掌握它们是学习ASP.NET2.0的重点。
对它们的学习可以从应用,配置,实现三方面出发。
1. 应用层,通过使用几个由ASP.NET2.0封装好的类即可在逻辑上实现诸如创建删除和检索用户,验证用户身份,存储和访问用户配置数据等功能。需要注意的是,这些APIs完成的得失业务逻辑,并不与数据库直接交互来完成实际功能。
2. 配置层,通过对web.config文件的配置来制定业务逻辑
3. 实现层,通过继承ASP.NET2.0中的XXXProvider类,来实现实际的数据库访问
下面表格中从三方面列出要掌握它们的学习任务。
|
个性化用户设置 |
成员资格管理 |
角色管理 |
应用APIs |
ProfileBase类 ProfileManager类 |
Membership类 MembershipUser类 |
Roles类 |
Web.config设置 |
<profile> |
<membership> |
<roleManager> |
提供程序基类 默认提供程序 |
ProfileProvider SqlProfileProvider |
MembershipProvider SqlMembershipProvider |
RoleProvider SqlRoleProvide |
需要注意的是关于角色管理ASP.NET2.0内置了3个提供程序除SqlRoleProvide之外,还有WindowsTokenRoleProvider和AuthorizationStoreRoleProvider。由此,角色信息除可存储在SQL server中也可使用Windows组作为角色或者使用Windows Server 2003授权管理器(AzMan)。上述表格中类的方法和属性可以参照msdn类库;web.config设置可以使用ASP.NET MMC管理单元和Web站点管理器实现图形化设置;关于实现自定义提供程序可以参照《ASP.NET2.0开发指南》。
默认情况下在涉及到性化用户配置以及成员资格和角色管理的应用时ASP.NET2.0会使用内置的SqlXXXProvider作为默认提供程序,通过在web.config自动添加的名为LocalSqlServer的隐示连接字符串指向一个SQL Server 2005 Express特定数据库实例(App_Data/ASPNETDB.MDF)来完成实际的数据访问。修改LocalSqlServer就可以了使用自己的数据库来保存应用设置。需要注意的是LocalSqlServer是隐士包含在web.config文件中,无法直接修改,目前比较流行的修改方法是:
<?xml version="1.0"?>
<configuration >
<connectionStrings>
<remove name="LocalSqlServer"/>
<add name="LocalSqlServer"
connectionString="Data Source=localhost;Initial Catalog=YourDB;UID=sa;PWD=232618805"
providerName="System.Data.SqlClient"/>
</connectionStrings>
</configuration>
指定好数据库之后,要用到aspnet_regsql.exe这个工具生成个性化用户配置,成员资格管理和角色管理所必需的数据库表以及存储过程。这个工具使用很简单,图形化界面几乎可以一路Next.
X:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_regsql.exe
如图: