3


Erkennt FormsAuthenticationModule, ob ...?

FormsAuthenticationModule ist für die Verfolgung von Benutzer- und Rolleninformationen unter Verwendung von verschlüsselten Cookie verwendet.

Aber ist dieses Modul auch Code enthalten, der erkennt tatsächlich, ob Benutzer Webseite Formularauthentifizierung anfordert Ticket hat, und wenn nicht, leitet Benutzer zur Login-Seite, oder ist es tatsächlich UrlAuthorizationModule die FormsAuthenticationModule umleiten nicht autorisierte/nicht authentifizierter erzählt Benutzer auf die Login-Seite?


thanx

+1

Formularauthentifizierung weiß absolut nichts über Rollen. Ich möchte Rollen bei der Formularauthentifizierung verwenden, dann müssen Sie es selbst über Rollen unterrichten. –

Antwort

4

Seltsamer, ich recherchiert gerade in dieser Woche diese.

Es stellt sich heraus, dass die FormsAuthenticationModule in Endrequest Event-Handler die eigentliche Umleitung tut. Es entscheidet jedoch nicht, dass die Weiterleitung erfolgen soll. Wenn der Antwortstatuscode 401 (Nicht autorisiert) lautet, wird die Weiterleitung ausgeführt.

Die UrlAuthorizationModule ist der Ort, an dem die Entscheidung getroffen wird (wie in einer anderen Antwort erwähnt), aber alle es tut, ist anzuzeigen, dass die Anforderung nicht, indem der Antwortstatuscode 401.

So ist es berechtigt ist, ist eigentlich die zwei Module in Koordination, die die Umleitung auf die Login-Seite passieren lassen.

+0

Fair enough :) Tatsächlich scheint die Notierung an Koders um anzuzeigen, dass die Umleitung auf 401 in der AuthenticationModule passiert (http://bit.ly/s7eiX). –

+0

Ich bemerkte dies in der Mono-Quelle für FormsAuthenticationModule und fragte mich, warum es bis EndRequest gewartet hat. Das macht Sinn. Vielen Dank. –

3

Gemäß der Dokumentation, die FormsAuthenticationModule nur

Legt die Identität des Benutzers für eine ASP.NET-Anwendung, wenn die Formularauthentifizierung aktiviert ist.

Allerdings sah sich an anderer Stelle (Requisiten Erv für diesen Hinweis) das Formularauthentifizierungsmodul zum Umleiten des Benutzers auf die Login-Seite durch Einhaken in die EndRequest Anwendungsereignis

Das bedeutet, es dann verantwortlich ist, hat nichts zu tun mit mit Rollen - Rollen abgewickelt werden durch die RoleManagerModule

So ist die UrlAuthorizationModule das Authentifizierungsmodul (dh Formulare, Passport/Live, Windows, etc.) verwendet und Rollenanbieter (mit denen Rollenmodul a (ppropriate), die in der Webkonfiguration konfiguriert sind, um den Zugriff zu erzwingen, und wenn CheckUrlAccessForPrinciple, das die Benutzerzugriffsrechte tatsächlich überprüft, false zurückgibt, wird ein 401-Fehler ausgelöst, der dann zu ASP.NET zurückkehrt.

Die App löst dann das EndRequest-Ereignis aus, das vom FormsAuthenticationModule abgerufen wird, das den Benutzer schließlich zur Standard-Anmeldeseite weiterleitet, die im Abschnitt Forms auth der web.config definiert ist.

+0

danken Ihnen allen für Ihre Hilfe prost – SourceC