Export (0) Print
Expand All

AuthorizationStoreRoleProvider.ApplicationName Property

Gets or sets the name of the authorization store application for which to store and retrieve role information.

Namespace:  System.Web.Security
Assembly:  System.Web (in System.Web.dll)

public override string ApplicationName { get; set; }

Property Value

Type: System.String
The name of the authorization store application for which to store and retrieve role information. The default is the HttpRequest.ApplicationPath property value for the current HttpContext.Request.

ExceptionCondition
ProviderException

An attempt was made to set the ApplicationName to a string that is longer than 256 characters.

The ApplicationName is used by the AuthorizationStoreRoleProvider to associate users and roles with different authorization-manager applications, which enables multiple ASP.NET applications to use the same authorization-manager policy store to store role information without running into conflicts between duplicate role names. Alternatively, multiple ASP.NET applications can use the same policy store by specifying the same value in the ApplicationName property. The ApplicationName property can be set programmatically, or it can be set declaratively in the application's Web.config file by using the applicationName attribute.

If a value is not specified for the applicationName attribute in the Web.config file, then the HttpRequest.ApplicationPath property value for the current HttpContext.Request object is used.

NoteNote

Authorization-manager application names cannot contain the "/" character that is included in the HttpRequest.ApplicationPath property. As a result, the default value for the ApplicationName property cannot be used as an authorization-manager application name, and in the application's Web.config file, you must always specify an applicationName attribute in the provider element to configure your AuthorizationStoreRoleProvider instance.

Caution noteCaution

Because a single default role provider instance is used for all of the requests served by an HttpApplication object, you can have multiple requests executing concurrently and attempting to set the ApplicationName property value. The ApplicationName property is not thread safe for multiple writes, and changing the ApplicationName property value can result in unexpected behavior when there are multiple users of an application. We recommend that you avoid writing code that allows users to set the ApplicationName property unless you must. An example of an application where setting the ApplicationName property may be required is an administrative application that manages role data for multiple applications. Such an application should be a single-user application and not a Web application.

The following example shows the roleManager element in the system.web section of the Web.config file for an ASP.NET application. It specifies the application's AuthorizationStoreRoleProvider instance and sets the ApplicationName property to MyApplication.

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

.NET Framework

Supported in: 4.5.2, 4.5.1, 4.5, 4, 3.5, 3.0, 2.0

Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Server Core Role not supported), Windows Server 2008 R2 (Server Core Role supported with SP1 or later; Itanium not supported)

The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.

Show:
© 2014 Microsoft