SqlRoleProvider 类
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
管理SQL Server数据库中 ASP.NET 应用程序的角色成员身份信息的存储。
public ref class SqlRoleProvider : System::Web::Security::RoleProvider
public class SqlRoleProvider : System.Web.Security.RoleProvider
type SqlRoleProvider = class
inherit RoleProvider
Public Class SqlRoleProvider
Inherits RoleProvider
- 继承
示例
以下示例显示了配置为使用 SqlRoleProvider 对象和 SqlMembershipProvider 的 ASP.NET 应用程序 Web.config 文件。 该 authorization 元素配置为仅允许访问管理员角色中经过身份验证的用户。
<configuration>
<connectionStrings>
<add name="SqlServices" connectionString="Data Source=localhost;Integrated Security=SSPI;Initial Catalog=aspnetdb;" />
</connectionStrings>
<system.web>
<authentication mode="Forms" >
<forms loginUrl="logincs.aspx"
name=".ASPXFORMSAUTH" />
</authentication>
<authorization>
<deny users="?" />
<allow roles="Administrators" />
<deny users="*" />
</authorization>
<membership defaultProvider="SqlProvider" userIsOnlineTimeWindow="15">
<providers>
<add
name="SqlProvider"
type="System.Web.Security.SqlMembershipProvider"
connectionStringName="SqlServices"
enablePasswordRetrieval="false"
enablePasswordReset="false"
requiresQuestionAndAnswer="false"
passwordFormat="Hashed"
applicationName="SampleApplication" />
</providers>
</membership>
<roleManager defaultProvider="SqlProvider"
enabled="true"
cacheRolesInCookie="true"
cookieName=".ASPROLES"
cookieTimeout="30"
cookiePath="/"
cookieRequireSSL="true"
cookieSlidingExpiration="true"
cookieProtection="All" >
<providers>
<add
name="SqlProvider"
type="System.Web.Security.SqlRoleProvider"
connectionStringName="SqlServices"
applicationName="SampleApplication" />
</providers>
</roleManager>
</system.web>
</configuration>
注解
此类由 Roles 和 RolePrincipal 类使用,为使用 SQL Server 数据库 ASP.NET 应用程序提供角色管理服务。 可以使用角色管理为应用程序指定不同级别的授权。
若要使用 SqlRoleProvider 类,必须先创建 SqlRoleProvider使用的SQL Server数据库。 若要创建 SqlRoleProvider 类使用的数据库,请运行 C:\WINDOWS\Microsoft.NET\Framework\ aspnet_regsql.exe 文件夹中找到的 versionNumber 可执行文件,并指定 -Ar 选项(例如,aspnet_regsql.exe -Ar)。 创建的数据库称为 Aspnetdb。 或者,运行 aspnet_regsql.exe 来拉取 GUI 配置模式,并选择配置所有 ASP.NET 功能。
如果角色提供程序配置了使用集成安全性的连接字符串,则 ASP.NET 应用程序的进程帐户必须有权连接到SQL Server数据库。
Machine.config 文件配置了一个名为 AspNetSqlProvider 的 SqlRoleProvider 实例,该实例连接到本地计算机上的SQL Server。 可以使用提供程序的此实例,或在 ASP.NET 应用程序的 Web.config 文件中指定自己的实例。 若要使用 AspNetSqlProvider 实例,请将 AspNetSqlProvider 指定为 defaultProvider 配置中的 AspNetSqlProvider。
可以将 SqlRoleProvider 配置为使用与使用同一数据库和用户信息相同的数据库和用户信息 SqlMembershipProvider ,以便使用单一数据库进行身份验证和授权信息。 若要对成员身份和角色信息使用相同的数据库,请运行 aspnet_regsql.exe 可执行文件并安装成员身份功能。 然后,在配置中为 SqlRoleProvider 和 SqlMembershipProvider 实例指定相同的连接字符串。 此外,请确保两个提供程序实例都配置了相同的 ApplicationName实例。
构造函数
| 名称 | 说明 |
|---|---|
| SqlRoleProvider() |
创建 SqlRoleProvider 类的实例。 |
属性
| 名称 | 说明 |
|---|---|
| ApplicationName |
获取或设置要为其存储和检索角色信息的应用程序的名称。 |
| Description |
获取适合在管理工具或其他用户界面(UI)中显示的简短友好说明。 (继承自 ProviderBase) |
| Name |
获取用于在配置期间引用提供程序的友好名称。 (继承自 ProviderBase) |
方法
| 名称 | 说明 |
|---|---|
| AddUsersToRoles(String[], String[]) |
将指定的用户名添加到每个指定角色。 |
| CreateRole(String) |
将新角色添加到角色数据库。 |
| DeleteRole(String, Boolean) |
从角色数据库中删除角色。 |
| Equals(Object) |
确定指定的对象是否等于当前对象。 (继承自 Object) |
| FindUsersInRole(String, String) |
获取角色中用户名的数组,其中用户名包含要匹配的指定用户名。 |
| GetAllRoles() |
获取应用程序的所有角色的列表。 |
| GetHashCode() |
用作默认哈希函数。 (继承自 Object) |
| GetRolesForUser(String) |
获取用户在其中的角色的列表。 |
| GetType() |
获取当前实例的 Type。 (继承自 Object) |
| GetUsersInRole(String) |
获取指定角色中的用户列表。 |
| Initialize(String, NameValueCollection) |
使用 ASP.NET 应用程序的配置文件中指定的属性值初始化SQL Server角色提供程序。 此方法不应直接从代码使用。 |
| IsUserInRole(String, String) |
获取一个值,该值指示指定的用户是否处于指定角色中。 |
| MemberwiseClone() |
创建当前 Object的浅表副本。 (继承自 Object) |
| RemoveUsersFromRoles(String[], String[]) |
从指定角色中删除指定的用户名。 |
| RoleExists(String) |
获取一个值,该值指示指定的角色名称是否已存在于角色数据库中。 |
| ToString() |
返回一个表示当前对象的字符串。 (继承自 Object) |