角色管理提供程序
更新:2007 年 11 月
角色管理服务使用提供程序模型区分角色管理 API 的功能和包含角色信息的数据存储区。.NET Framework 包括下列用于在不同数据存储区中维护角色信息的提供程序:
SQL Server。角色信息存储在 SQL Server 数据库中。SQL 提供程序适用于大中型 Internet 应用程序。这是默认提供程序。
Windows (WindowsToken)。角色信息基于 Windows 帐户(用户和组)。只有应用程序在所有用户都有域帐户的网络上运行时,才可以使用 Windows 提供程序。
授权管理器 (AzMan)。使用授权管理器 XML 文件或基于目录的策略存储区管理角色信息。
在应用程序的 Web.config 文件中配置角色管理时,通过设置 defaultProvider 属性指定提供程序。例如,若要指定名为“SQL”的角色提供程序实例,请在配置文件的 roleManager 元素(ASP.NET 设置架构)中创建下面的项:
<roleManager
defaultProvider="SQL"enabled="true"
cacheRolesInCookie="true" >
</roleManager>
角色可以使用您用于成员资格服务和用户配件文件的同一数据库。但是,您仍可以为其中每个服务指定不同的提供程序。有关配置角色管理数据库的信息,请参见为 SQL Server 创建和配置应用程序服务数据库。
如果指定 WindowsTokenRoleProvider 提供程序,则还必须用 Web.config 文件中类似于下面的一项将应用程序配置为使用 Windows 身份验证:
<authentication mode="Windows" />
WindowsTokenRoleProvider 提供程序不支持角色管理 API 的多数管理功能。例如,如果使用 WindowsTokenRoleProvider 提供程序,就不能使用角色管理创建组或向组添加用户。而必须在 Windows 中执行这些功能。
自定义角色管理提供程序
您也可以创建一个自定义角色管理提供程序,使用该程序,您可以为角色信息定义您自己的存储区或使用现有的角色信息存储区。通常的方法是创建一个继承 RoleProvider 抽象类的类。RoleProvider 类标识提供程序定义的方法(实际上,这些方法与 Roles 类中的方法相同)。
创建自定义角色提供程序后,可以将应用程序配置为使用该提供程序,配置方法与将应用程序配置为使用 .NET Framework 所提供的某一提供程序的方法相同。然后,角色管理系统会自动调用您的自定义提供程序并调用它的方法。
有关更多信息,请参见实现角色提供程序。