SqlRoleProvider 类

定义

管理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

示例

以下示例显示了配置为使用 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 类,必须先创建 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 可执行文件并安装成员身份功能。 然后,在配置中为 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)

适用于

另请参阅