Roles.ApplicationName 属性

定义

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

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

属性值

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

示例

以下示例演示 ASP.NET 应用程序的 Web.config 文件的 节中的 system.webroleManager 元素。 它指定应用程序使用 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 应用程序。

适用于

另请参阅