AuthorizationStoreRoleProvider 类

定义

在 XML 文件中、Active Directory 中或 Active Directory 应用程序模式服务器上管理 ASP.NET 应用程序的角色成员资格信息在授权管理器策略存储区中的存储。

public ref class AuthorizationStoreRoleProvider : System::Web::Security::RoleProvider
public class AuthorizationStoreRoleProvider : System.Web.Security.RoleProvider
type AuthorizationStoreRoleProvider = class
    inherit RoleProvider
Public Class AuthorizationStoreRoleProvider
Inherits RoleProvider
继承
AuthorizationStoreRoleProvider

示例

下面的代码示例显示了一个Web.config文件集,用于 AuthorizationStoreRoleProvider 角色管理。

<configuration>  
  <connectionStrings>  
    <add name="AuthorizationServices" connectionString="msxml://~\App_Data\SampleStore.xml" />  
  </connectionStrings>  

  <system.web>  

    <authentication mode="Windows" />  
    <identity impersonate="true" />  

    <roleManager defaultProvider="AuthorizationStoreRoleProvider"   
      enabled="true"  
      cacheRolesInCookie="true"  
      cookieName=".ASPROLES"  
      cookieTimeout="30"  
      cookiePath="/"  
      cookieRequireSSL="false"  
      cookieSlidingExpiration="true"  
      cookieProtection="All" >  
      <providers>  
        <clear />  
          <add  
            name="AuthorizationStoreRoleProvider"  
            type="System.Web.Security.AuthorizationStoreRoleProvider"  
            connectionStringName="AuthorizationServices"  
            applicationName="SampleApplication"   
            cacheRefreshInterval="60"  
            scopeName="" />  
      </providers>  
    </roleManager>  

  </system.web>  
</configuration>  

注解

此类由 Roles 类使用,类 RolePrincipal 使用授权管理器存储为 ASP.NET 应用程序提供角色管理服务。 可以使用角色管理为应用程序指定不同级别的授权。 可以使用 Microsoft 管理控制台访问授权管理器。

AuthorizationStoreRoleProvider对象适用于Windows 身份验证和表单身份验证模式。

可以将对象配置为 AuthorizationStoreRoleProvider 使用本地 XML 文件或 Active Directory 或 Active Directory 应用程序模式 (ADAM) 服务器。 使用本地文件时,连接字符串应如以下示例所示。

msxml://<path to xml file>  

如果本地文件存储在 ASP.NET Web 应用程序的目录树中,则可以使用平铺 (“~”) 字符来指示根目录。 例如,若要指示本地文件存储在 Web 应用程序的数据目录中,请使用类似于以下示例的连接字符串。

msxml://~\App_Data\datafilename.xml

重要

将 XML 数据文件存储在 Web 应用程序目录中是潜在的安全威胁。 默认情况下,IIS 将为 WEB 提供 XML 数据文件。 若要在 ASP.NET 应用程序中使用本地数据文件时提高安全性,应将数据文件 App_Data 存储在目录中。 存储在 App_Data 目录中的文件不会提供给 Web。

如果对策略存储使用 Active Directory 或 ADAM 服务器,则连接字符串应类似于以下示例。

msldap://myserver/CN=MyAzManStore,OU=MyOU,DC=MyDomain,DC=MyDC,DC=Com

对象方法文档中 AuthorizationStoreRoleProvider 列出的异常是对象引发 AuthorizationStoreRoleProvider 的异常。 由于提供程序依赖于基础身份验证管理器运行时,因此AuthorizationStoreRoleProvider每当对象将方法调用转发到 Authentication Manager 运行时时,COMException都可能会引发异常。

重要

AuthorizationStoreRoleProvider 对象在部分信任环境中运行具有以下要求:

在 ASP.NET 应用程序中使用基于文件的策略存储时,当前信任级别授予的文件 I/O 权限决定了提供程序是否允许读取和写入操作。 ASP.NET 应用程序必须对文件具有读取权限才能从策略存储中读取数据,并且必须具有写入权限才能保存新信息或更新策略存储中的现有信息。 默认的中信任策略文件在其应用程序目录中提供 ASP.NET 应用程序读/写权限。 默认的低信任策略文件仅在其应用程序目录中提供 ASP.NET 应用程序读取权限。 此外,运行 ASP.NET 应用程序的进程标识必须具有读取和/或写入策略文件的文件系统权限。

使用 Active Directory 或 ADAM 服务器时,ASP.NET 应用程序需要非托管代码权限,因为内部 AuthorizationStoreRoleProvider 对象代码使用 COM 互操作。

在 ASP.NET 外部使用 AuthorizationStoreRoleProvider 对象时,调用代码需要非托管代码权限。

构造函数

AuthorizationStoreRoleProvider()

初始化 AuthorizationStoreRoleProvider 类的新实例。

属性

ApplicationName

获取或设置要存储和检索其角色信息的授权存储应用程序的名称。

CacheRefreshInterval

获取策略存储数据区的缓存刷新间隔时间(分钟数)。

Description

获取一条简短的易懂描述,它适合在管理工具或其他用户界面 (UI) 中显示。

(继承自 ProviderBase)
Name

获得一个友好名称,用于在配置过程中引用提供程序。

(继承自 ProviderBase)
ScopeName

获取或设置授权存储区的范围名。

方法

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 应用程序的配置文件中指定的属性值初始化授权管理器角色提供程序。 此方法不能直接在代码中使用。

IsUserInRole(String, String)

获取一个指示指定用户是否属于指定角色的值。

MemberwiseClone()

创建当前 Object 的浅表副本。

(继承自 Object)
RemoveUsersFromRoles(String[], String[])

移除指定角色中的指定用户名。

RoleExists(String)

获取一个值,该值指示指定角色名是否已存在于授权管理器策略存储区中。

ToString()

返回表示当前对象的字符串。

(继承自 Object)

适用于

另请参阅