SqlRoleProvider.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

属性值

String

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

例外

不具有 ApplicationName ASP.NET 承载权限的调用方尝试设置 High 属性。

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

示例

以下示例演示 roleManager ASP.NET 应用程序的 Web.config 文件中的元素 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>

注解

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

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

注意

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

适用于

另请参阅