Unterschiede zwischen Page.User.Identity und Request.LogonUserIdentity

8

Was sind die Unterschiede (hinter den Kulissen) zwischen Page.User.Identity und Request.LogonUserIdentity? Nicht die Unterschiede in Typ, Name, etc, aber die Unterschiede, wie sie im Hintergrund implementiert werden (d. H. Man ruft Windows xxx api und der andere ruft asp.net xxx api ...).

    
jameszhao00 02.02.2010, 19:14
quelle

1 Antwort

18

Es hängt davon ab, mit welchem ​​Mechanismus Sie Benutzer authentifizieren und welche Einstellungen Sie für den Identitätswechsel verwenden.

Beispiel: Verwenden Sie unter dem VS-Entwicklungsserver mithilfe der Formularauthentifizierung den standardmäßigen SQL-Mitgliedschaftsanbieter und den folgenden Code:

%Vor%

Ich bekomme folgende Ausgabe:

  

Page.User.Identity: zhaph

     

Request.LogonUserIdentity: [Computername] \ Ben

Die erste Zeile (Page.User.Identity) ist das Formularauthentifizierungskonto, mit dem ich mich bei der Site angemeldet habe, die zweite Zeile ist die Windows-Identität, unter der die Anfrage ausgeführt wird - da ich den Identitätswechsel nicht aktiviert habe, ist dies der Fall meine Windows-Anmeldung als das Konto, unter dem der Webserver läuft.

In Bezug auf die APIs ruft HttpRequest.LogonUserIdentity auf in die WindowsIdentity-Klasse, die immer ein Windows-Benutzerkonto darstellt, während Page.User erstellt ein Objekt, das IPrinciple implementiert, das es Ihnen ermöglicht, einen Benutzer mit einer Anzahl von verschiedenen Hintergrundgeschäften zu repräsentieren - z. B. die vom MembershipProvider bereitgestellte SQL-Datenbankstruktur.

>     
Zhaph - Ben Duguid 02.02.2010, 23:21
quelle

Tags und Links