AuthorizationStoreRoleProvider.ApplicationName Eigenschaft

Definition

Ruft den Namen der Autorisierungsspeicheranwendung ab, für die Rolleninformationen gespeichert und abgerufen werden sollen, oder legt diesen fest.

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

Eigenschaftswert

Der Name der Autorisierungsspeicheranwendung, für die Rolleninformationen gespeichert und abgerufen werden sollen. Der ApplicationPath-Eigenschaftswert ist der Standardwert für die aktuelle Request.

Ausnahmen

ApplicationName wurde auf eine Zeichenfolge festzulegen versucht, die länger als 256 Zeichen ist.

Beispiele

Das folgende Beispiel zeigt das <roleManager-Element> im system.web Abschnitt der Web.config-Datei für eine ASP.NET-Anwendung. Sie gibt die Instanz der AuthorizationStoreRoleProvider Anwendung an und legt die ApplicationName -Eigenschaft auf fest 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>

Hinweise

ApplicationName Wird von verwendet, AuthorizationStoreRoleProvider um Benutzer und Rollen unterschiedlichen Autorisierungs-Manager-Anwendungen zuzuordnen, sodass mehrere ASP.NET Anwendungen denselben Autorisierungs-Manager-Richtlinienspeicher zum Speichern von Rolleninformationen verwenden können, ohne dass Konflikte zwischen doppelten Rollennamen auftreten. Alternativ können mehrere ASP.NET Anwendungen denselben Richtlinienspeicher verwenden, indem sie denselben Wert in der ApplicationName -Eigenschaft angeben. Die ApplicationName -Eigenschaft kann programmgesteuert oder deklarativ in der Web.config-Datei der Anwendung mithilfe des applicationName -Attributs festgelegt werden.

Wenn für das Attribut in der applicationName Web.config-Datei kein Wert angegeben wird, wird der HttpRequest.ApplicationPath -Eigenschaftswert für das aktuelle HttpContext.Request Objekt verwendet.

Hinweis

Autorisierungs-Manager-Anwendungsnamen dürfen nicht das Zeichen "/" enthalten, das in der HttpRequest.ApplicationPath -Eigenschaft enthalten ist. Daher kann der Standardwert für die ApplicationName Eigenschaft nicht als Autorisierungs-Manager-Anwendungsname verwendet werden, und in der Web.config-Datei der Anwendung müssen Sie immer ein applicationName Attribut im provider -Element angeben, um Ihre AuthorizationStoreRoleProvider Instanz zu konfigurieren.

Achtung

Da eine einzelne Standardrollenanbieterinstanz für alle Anforderungen verwendet wird, die von einem HttpApplication Objekt bereitgestellt werden, können mehrere Anforderungen gleichzeitig ausgeführt werden und versuchen, den ApplicationName Eigenschaftswert festzulegen. Die ApplicationName Eigenschaft ist für mehrere Schreibvorgänge nicht threadsicher, und das Ändern des ApplicationName Eigenschaftswerts kann zu unerwartetem Verhalten führen, wenn mehrere Benutzer einer Anwendung vorhanden sind. Es wird empfohlen, das Schreiben von Code zu vermeiden, mit dem Benutzer die ApplicationName Eigenschaft festlegen können, sofern dies nicht erforderlich ist. Ein Beispiel für eine Anwendung, bei der das Festlegen der ApplicationName Eigenschaft erforderlich sein kann, ist eine Administratoranwendung, die Rollendaten für mehrere Anwendungen verwaltet. Eine solche Anwendung sollte eine Einzelbenutzeranwendung und keine Webanwendung sein.

Gilt für:

Weitere Informationen