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

属性值

要存储和检索其角色信息的应用程序的名称。 默认值为当前 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>

注解

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

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

注意

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

适用于

另请参阅