Dieser Artikel wurde manuell übersetzt. Bewegen Sie den Mauszeiger über die Sätze im Artikel, um den Originaltext anzuzeigen. |
Übersetzung
Original
|
AuthorizeAttribute-Klasse
Stellt ein Attribut dar, das verwendet wird, um den Zugriff von Aufrufern einer Aktionsmethode einzuschränken.
Assembly: System.Web.Mvc (in System.Web.Mvc.dll)
Der AuthorizeAttribute-Typ macht die folgenden Member verfügbar.
| Name | Beschreibung | |
|---|---|---|
|
AuthorizeAttribute | Initialisiert eine neue Instanz der AuthorizeAttribute-Klasse. |
| Name | Beschreibung | |
|---|---|---|
|
Order | Ruft die Reihenfolge ab (bzw. legt diese fest), in der die Aktionsfilter ausgeführt werden. (Von FilterAttribute geerbt.) |
|
Roles | Ruft die Benutzerrollen ab bzw. legt diese fest. |
|
TypeId | Ruft den eindeutigen Bezeichner für dieses Attribut ab. (Überschreibt Attribute.TypeId.) |
|
Users | Ruft die autorisierten Benutzer ab bzw. legt sie fest. |
| Name | Beschreibung | |
|---|---|---|
|
AuthorizeCore | Bestimmt, ob der Zugriff auf das Kernframework zulässig ist. |
|
Equals | Infrastruktur. Gibt einen Wert zurück, der angibt, ob diese Instanz gleich einem angegebenen Objekt ist. (Von Attribute geerbt.) |
|
Finalize | Gibt einem Objekt Gelegenheit zu dem Versuch, Ressourcen freizugeben und andere Bereinigungen durchzuführen, bevor es von der automatische Speicherbereinigung freigegeben wird. (Von Object geerbt.) |
|
GetHashCode | Gibt den Hashcode für diese Instanz zurück. (Von Attribute geerbt.) |
|
GetType | Ruft den Type der aktuellen Instanz ab. (Von Object geerbt.) |
|
HandleUnauthorizedRequest | Verarbeitet HTTP-Anforderungen, deren Autorisierung nicht erfolgreich war. |
|
IsDefaultAttribute | Beim Überschreiben in einer abgeleiteten Klasse wird angegeben, ob der Wert dieser Instanz der Standardwert für die abgeleitete Klasse ist. (Von Attribute geerbt.) |
|
Match | Beim Überschreiben in einer abgeleiteten Klasse wird ein Wert zurückgegeben, der angibt, ob diese Instanz einem bestimmten Objekt entspricht. (Von Attribute geerbt.) |
|
MemberwiseClone | Erstellt eine flache Kopie des aktuellen Object. (Von Object geerbt.) |
|
OnAuthorization | Wird aufgerufen, wenn ein Prozess eine Autorisierung anfordert. |
|
OnCacheAuthorization | Wird aufgerufen, wenn das Cachemodul eine Autorisierung anfordert. |
|
ToString | Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt. (Von Object geerbt.) |
| Name | Beschreibung | |
|---|---|---|
|
_Attribute.GetIDsOfNames | Ordnet eine Reihe von Namen einer entsprechenden Reihe von Dispatchbezeichnern zu. (Von Attribute geerbt.) |
|
_Attribute.GetTypeInfo | Ruft die Typinformationen für ein Objekt ab, mit deren Hilfe die Typinformationen für eine Schnittstelle abgerufen werden können. (Von Attribute geerbt.) |
|
_Attribute.GetTypeInfoCount | Ruft die Anzahl der Schnittstellen mit Typinformationen ab, die von einem Objekt bereitgestellt werden (0 oder 1). (Von Attribute geerbt.) |
|
_Attribute.Invoke | Stellt den Zugriff auf von einem Objekt verfügbar gemachte Eigenschaften und Methoden bereit. (Von Attribute geerbt.) |
Viele Webanwendungen setzen voraus, dass sich die Benutzer anmelden, bevor den Benutzern Zugriff auf eingeschränkten Inhalt gewährt wird. In einigen Anwendungen könnten sogar Benutzer, die angemeldet sind, Einschränkungen auf den Inhalt haben, den sie anzeigen können oder welche Felder sie bearbeiten können.
Um den Zugriff auf eine ASP.NET MVC-Ansicht einzuschränken, schränken Sie Zugriff auf die Aktionsmethode ein, die die Ansicht rendert. Um dies auszuführen, stellt das MVC-Framework die AuthorizeAttribute-Klasse bereit.
Weitere Informationen über das Verwenden von Attributen finden Sie unter Erweitern von Metadaten mithilfe von Attributen.
Dieses Thema enthält folgende Abschnitte:
Mit AuthorizeAttribute
Wenn Sie eine Aktionsmethode mit einemAuthorizeAttribute-Element markieren, wird der Zugriff auf diese Aktionsmethode für die Benutzer eingeschränkt, die authentifiziert und autorisiert sind. Wenn Sie einen Controller mit dem Attribut markieren, werden als Aktionsmethoden im Controller eingeschränkt.
Das Authorize-Attribut lässt Sie angeben, dass die Autorisierung auf vordefinierte Rollen oder einzelnen Benutzern beschränkt wird. So verfügen Sie über einen hohen Steuerungsgrad darüber, wer zum Anzeigen von Seiten auf dieser Site berechtigt ist.
Wenn ein unbefugter Benutzer versucht, auf eine Methode zuzugreifen, die mit dem Authorize-Attribut markiert wird, gibt das MVC-Framework einen 401 HTTP-Statuscode zurück. Wenn die Site für die Verwendung der ASP.NET-Formularauthentifizierung konfiguriert wurde, führt der 401 Statuscode dazu, dass der Browser den Benutzer auf die Anmeldeseite umleitet.
Ableiten von AuthorizeAttribute
Wenn Sie von der AuthorizeAttribute-Klasse ableiten, muss der abgeleitete Typ threadsicher sein. Speichern Sie daher keinen Zustand in einer Instanz des Typs (z. B., in einem Instanzfeld), außer wenn dieser Zustand für alle Anforderungen übernommen werden soll. Speichern Sie stattdessen den Zustand pro Anforderung in die Items-Eigenschaft, auf die durch die Kontextobjekte zugegriffen werden kann, die an AuthorizeAttribute übergeben werden.
Im folgenden Beispiel werden verschiedene Möglichkeiten zur Verwendung der AuthorizeAttribute-Methode gezeigt. Die HomeController-Klasse verfügt über drei Aktionsmethoden, die mit dem Authorize-Attribut markiert werden, und zwei, die nicht markiert werden. Bei der AuthenticatedUsers-Methode beschränkt das Attribut den Zugriff auf Benutzer, die angemeldet sind. Bei der AdministratorsOnly-Methode beschränkt das Attribut den Zugriff auf Benutzer, die entweder der Administratorrolle oder der Superbenutzerrolle zugewiesen wurden. Bei der SpecificUserOnly-Methode beschränkt das Attribut den Zugriff auf Benutzer, die angemeldet sind. Auf die Index-Methode und About-Methode kann von jedem beliebigen Benutzer zugegriffen werden, auch wenn dieser anonym ist.
[HandleError] public class HomeController : Controller { public ActionResult Index() { ViewData["Message"] = "Welcome to ASP.NET MVC!"; return View(); } public ActionResult About() { return View(); } [Authorize] public ActionResult AuthenticatedUsers() { return View(); } [Authorize(Roles = "Admin, Super User")] public ActionResult AdministratorsOnly() { return View(); } [Authorize(Users = "Betty, Johnny")] public ActionResult SpecificUserOnly() { return View(); } }