AuthorizationStoreRoleProvider.ApplicationName 属性

定义

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

public:
 virtual property System::String ^ ApplicationName { System::String ^ get(); void set(System::String ^ value); };
public override string ApplicationName { get; set; }
member this.ApplicationName : string with get, set
Public Overrides Property ApplicationName As String

属性值

要存储和检索其角色信息的授权存储应用程序的名称。 默认值为当前 ApplicationPathRequest 属性值。

例外

尝试将 ApplicationName 设置为长于 256 个字符的字符串。

示例

以下示例演示 ASP.NET <应用程序的 Web.config 文件的 节中的 system.web roleManager> 元素。 它指定应用程序的 AuthorizationStoreRoleProvider 实例,并将 属性设置为 ApplicationNameMyApplication

<roleManager defaultProvider="AuthorizationStoreProvider"
  enabled="true"
  cacheRolesInCookie="true"
  cookieName=".ASPROLES"
  cookieTimeout="30"
  cookiePath="/"
  cookieRequireSSL="false"
  cookieSlidingExpiration="true"
  cookieProtection="All" >
  <providers>
    <add
      name="SqlProvider"
      type="System.Web.Security.AuthorizationStoreRoleProvider"
      connectionStringName="AuthorizationStoreServices"
      scopeName="MyScope"
      applicationName="MyApplication" />
  </providers>
</roleManager>

注解

ApplicationName由 用于AuthorizationStoreRoleProvider将用户和角色与不同的授权管理器应用程序相关联,这使多个 ASP.NET 应用程序能够使用相同的授权管理器策略存储来存储角色信息,而不会在重复的角色名称之间发生冲突。 或者,多个 ASP.NET 应用程序可以通过在 属性中 ApplicationName 指定相同的值来使用相同的策略存储。 ApplicationName可以通过编程方式设置 属性,也可以使用 特性在应用程序的 Web.config 文件中以applicationName声明方式设置属性。

如果未为 Web.config 文件中的属性 applicationName 指定值,则 HttpRequest.ApplicationPath 使用当前 HttpContext.Request 对象的属性值。

注意

授权管理器应用程序名称不能包含 属性中包含的 HttpRequest.ApplicationPath “/”字符。 因此,属性的ApplicationName默认值不能用作授权管理器应用程序名称,在应用程序的 Web.config 文件中,必须始终在 元素中provider指定属性applicationName才能配置AuthorizationStoreRoleProvider实例。

注意

由于单个默认角色提供程序实例用于对象 HttpApplication 处理的所有请求,因此可以同时执行多个请求并尝试设置 ApplicationName 属性值。 对于多次写入,属性 ApplicationName 不是线程安全的,当应用程序有多个用户时, ApplicationName 更改属性值可能会导致意外行为。 除非必须,否则建议避免编写允许用户设置 ApplicationName 属性的代码。 可能需要设置 ApplicationName 属性的应用程序的一个示例是管理多个应用程序的角色数据的管理应用程序。 此类应用程序应该是单用户应用程序,而不是 Web 应用程序。

适用于

另请参阅