SqlRoleProvider 类
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
对 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 对象和 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 类,必须先创建 使用的 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 可执行文件并安装成员身份功能。 然后,在配置中为 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) |