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 对象和 SqlMembershipProviderASP.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 的数据库,请运行 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 实例,请在配置中指定 defaultProvider AspNetSqlProvider。

可以将 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)

适用于

另请参阅