Roles.ApplicationName 属性

定义

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

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

属性值

String

要存储和检索其角色信息的应用程序的名称。

示例

以下示例演示 ASP.NET 应用程序的 Web.config 文件中的 roleManager 元素system.web。 它指定应用程序使用 SqlRoleProvider 实例并将属性设置为 applicationName MyApplication

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

注解

ApplicationName 属性由 Roles 类用来将用户和角色与不同的应用程序相关联。 这样,多个应用程序就可以使用相同的数据源来存储用户和角色信息,而不会在重复的用户名或重复角色名称之间发生冲突。 多个 ASP.NET 应用程序可以通过在属性中ApplicationName指定相同的值来使用相同的数据源。 可以通过编程方式设置 ApplicationName 属性,也可以使用该属性以声明方式在 Web 应用程序的 applicationName 配置文件中对其进行设置。

如果 Web 应用程序使用的是 SqlRoleProvider 类,并且未为 applicationName 配置文件中的属性指定值, HttpRequest.ApplicationPath 则使用当前 HttpContext.Request 属性的属性值。

注意

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

适用于

另请参阅