此类由 Roles 和 RolePrincipal 类使用,用于为使用 SQL Server 数据库的 ASP.NET 应用程序提供角色管理服务。可以使用角色管理为应用程序指定不同的授权级别。
要使用 SqlRoleProvider 类,您必须首先创建 SqlRoleProvider 使用的 SQL Server 数据库。要创建 SqlRoleProvider 类使用的数据库,请运行 aspnet_regsql.exe 可执行文件(可在 C:\WINDOWS\Microsoft.NET\Framework\ versionNumber 文件夹中找到),并指定 -Ar 选项(例如 aspnet_regsql.exe -Ar)。所创建的数据库名为 Aspnetdb。或者,运行 Aspnet_regsql.exe 启动图形用户界面配置模式并选择配置所有 ASP.NET 功能。
如果使用指定了集成安全性的连接字符串对角色提供程序进行配置,则 ASP.NET 应用程序的进程帐户必须具有连接到 SQL Server 数据库的权限。
Machine.config 文件是利用名为 AspNetSqlProvider 的 SqlRoleProvider 实例配置的,该实例连接到本地计算机上的 SQL Server。您可以使用此提供程序实例,也可以在 ASP.NET 应用程序的 Web.config 文件中指定自己的实例。要使用 AspNetSqlProvider 实例,请在您的 roleManager 配置中将 AspNetSqlProvider 指定为 defaultProvider。
可以将 SqlRoleProvider 配置为与 SqlMembershipProvider 使用相同的数据库和用户信息,以便使用一个数据库即可获得身份验证和授权信息。如要使用同一个数据库获取成员资格和角色信息,请运行 aspnet_regsql.exe 可执行文件,然后安装成员资格功能。然后,在配置中为 SqlRoleProvider 和 SqlMembershipProvider 实例指定同样的连接字符串。另外,还要确保利用相同的 ApplicationName 来配置这两个提供程序实例。