SqlRoleProvider 类

定义

对 ASP.NET 应用程序的角色成员资格信息在 SQL Server 数据库中的存储进行管理。

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

示例

以下示例演示配置为使用 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>

注解

此类由 RolesRolePrincipal 类用于为使用 SQL Server 数据库的 ASP.NET 应用程序提供角色管理服务。 可以使用角色管理为应用程序指定不同级别的授权。

若要使用 SqlRoleProvider 类,必须先创建 使用的 SqlRoleProviderSQL Server 数据库。 若要创建 类使用 SqlRoleProvider 的数据库,请运行 aspnet_regsql.exe 在 C:\WINDOWS\Microsoft.NET\Framework\ versionNumber 文件夹中找到的可执行文件,并指定 -Ar (选项, aspnet_regsql.exe -Ar 例如,) 。 创建的数据库称为 Aspnetdb。 或者,运行 aspnet_regsql.exe 来拉取 GUI 配置模式,并选择配置所有 ASP.NET 功能。

如果角色提供程序配置了使用集成安全性的连接字符串,则 ASP.NET 应用程序的进程帐户必须有权连接到 SQL Server 数据库。

Machine.config 文件配置了一个名为 SqlRoleProvider AspNetSqlProvider 的实例,该实例连接到本地计算机上的 SQL Server。 可以使用提供程序的此实例,也可以在 ASP.NET 应用程序的 Web.config 文件中指定自己的实例。 若要使用 AspNetSqlProvider 实例,请在配置中将 AspNetSqlProvider 指定为 defaultProvider

可以将 配置为 SqlRoleProvider 使用与 相同的数据库和用户信息 SqlMembershipProvider ,以便将单个数据库用于身份验证和授权信息。 若要将同一数据库用于成员身份和角色信息,请运行 aspnet_regsql.exe 可执行文件并安装成员身份功能。 然后,在配置中为 SqlRoleProviderSqlMembershipProvider 实例指定相同的连接字符串。 此外,请确保两个提供程序实例都配置了相同的 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)

适用于

另请参阅