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>

注解

此类由 RolesRolePrincipal 类用于为使用授权管理器存储的 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 异常。 由于提供程序依赖于基础身份验证管理器运行时,因此 COMException 每当 AuthorizationStoreRoleProvider 对象将方法调用转发到身份验证管理器运行时时,都可能会引发异常。

重要

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)

适用于

另请参阅