【IT168技术文档】
一套完善的用户权限系统少不了成员和角色的管理,而权限系统相对于网站的其他部分又相对独立。ASP.NET 2.0把成员和角色管理封装成了一个完整的系统。对于小型的系统,我们可以使用登录控件和ASP.NET网站管理工具来实现成员和角色管理(无需编写一行代码),对于大型的系统,我们也可以使用ASP.NET 2.0成员资格和角色管理器API来编码实现自定义的成员和角色管理。
ASP.NET 2.0成员资格负责用户的管理,角色管理器负责角色的管理,登录控件负责面向用户的成员服务(注册、登录、修改和取回密码),ASP.NET表单验证负责用户凭据的管理,ASP.NET网站管理工具负责面向管理员的安全配置,ASP.NET基于URL的授权负责用户角色对于目录的授权管理,一套完整的用户、角色和权限管理系统就这样诞生了。
成员资格概述
ASP.NET 成员资格为我们提供了一种验证和存储用户凭据的内置方法。因此,ASP.NET成员资格可以帮助我们管理网站中的用户身份验证。可以将ASP.NET成员资格与基于表单的身份验证或ASP.NET登录控件一起使用,以创建一个完整的用户身份验证系统。ASP.NET成员资格支持下列功能:
· 创建新用户和密码。
· 将成员资格信息(用户名、密码和支持数据)存储在Microsoft SQL Server、Active Directory或其他数据存储区。
· 对访问站点的用户进行身份验证。可以以编程方式验证用户,也可以使用 ASP.NET 登录控件创建一个只需很少代码或无需代码的完整身份验证系统。
· 管理密码,包括修改和找回密码。
· 公开经过身份验证的用户的唯一标识,可以在我们自己的应用程序中使用该标识,也可以将该标识与 ASP.NET 个性化设置和角色管理(授权)系统集成。
· 指定自定义成员资格提供程序,这使我们可以改为用自己的代码管理成员资格及在自定义数据存储区中维护成员资格数据
ASP.NET 成员资格系统的设计目的主要是用于 ASP.NET 登录控件和 ASP.NET表单验证。也就是说,成员资格系统对于那些需要在程序中获取用户凭据并进行验证的应用程序最为有用。当然,也可以将 ASP.NET 成员资格用于任何自定义的身份验证系统。
成员资格的配置
要使用成员资格,首先需要使用membership元素的defaultProvider属性来指定默认的成员资格提供程序。如果没有显式指定默认的提供程序,计算机配置将指定一个名为AspNetSqlMembership Provider的SqlMembershipProvider实例(它被标识为默认的提供程序)。 AspNetSqlMembershipProvider连接到本地SQL Server中的aspnetdb数据库。但是如果你不希望成员资格使用默认的Express数据库,或者希望自定义成员资格的一些属性,那么就需要自定义一个成员资格提供程序。
<configuration> <connectionStrings> <add name="MySqlConnection" connectionString="server=srv-devdbhost;uid= sa;pwd=Abcd1234;database=aspnetdb" /> </connectionStrings> <system.web> <membership defaultProvider="SqlProvider" userIsOnlineTimeWindow="15"> <providers> <clear /> <add name="SqlProvider" type="System.Web.Security.SqlMembershipProvider" connectionStringName="MySqlConnection" applicationName="MyApplication" </providers> </membership> </system.web> </configuration>