请单击以进行评分并提供反馈
MSDN
MSDN Library
.NET 开发
先前版本

  开启低带宽视图
此页面仅适用于
Microsoft Visual Studio 2005/.NET Framework 2.0

同时提供下列产品的其他版本:
.NET Framework 类库
SqlRoleProvider 类

注意:此类在 .NET Framework 2.0 版中是新增的。

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

命名空间:System.Web.Security
程序集:System.Web(在 system.web.dll 中)

Visual Basic(声明)
Public Class SqlRoleProvider
    Inherits RoleProvider
Visual Basic(用法)
Dim instance As SqlRoleProvider
C#
public class SqlRoleProvider : RoleProvider
C++
public ref class SqlRoleProvider : public RoleProvider
J#
public class SqlRoleProvider extends RoleProvider
JScript
public class SqlRoleProvider extends RoleProvider

此类由 RolesRolePrincipal 类使用,用于为使用 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 可执行文件,然后安装成员资格功能。然后,在配置中为 SqlRoleProviderSqlMembershipProvider 实例指定同样的连接字符串。另外,还要确保利用相同的 ApplicationName 来配置这两个提供程序实例。

下面的示例演示了配置为使用 SqlRoleProvider 对象和 SqlMembershipProvider 的 ASP.NET 应用程序的 Web.config 文件。authorization 元素配置为只允许经过身份验证且角色为 Administrators 的用户进行访问。

<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>
System.Object
   System.Configuration.Provider.ProviderBase
     System.Web.Security.RoleProvider
      System.Web.Security.SqlRoleProvider
此类型的任何公共静态(Visual Basic 中的 Shared)成员都是线程安全的,但不保证所有实例成员都是线程安全的。

Windows 98、Windows 2000 SP4、Windows Server 2003、Windows XP Media Center Edition、Windows XP Professional x64 Edition、Windows XP SP2、Windows XP Starter Edition

.NET Framework 并不是对每个平台的所有版本都提供支持。有关受支持版本的列表,请参见系统要求

.NET Framework

受以下版本支持:2.0
社区内容   什么是社区内容?
添加新内容 RSS  批注
Processing
© 2009 Microsoft Corporation 版权所有。 保留所有权利  |  商标  |  隐私权声明
Page view tracker