2009-06-01 17 views
0

Gibt es eine Möglichkeit, den angemeldeten Benutzer von einer vb.net-Webanwendung abzurufen? IE, wenn jemand auf seinem lokalen Rechner als "foo"/"bar" eingeloggt auf die Seite zugreift, brauche ich Code, um mir "foo"/"bar" zu besorgen. Dies ist für ein Passthrough in unserem Intranet, wo alle dasselbe Active Directory verwenden.Anmelden des Anforderers in ASP.NET/VB.NET

Im Wesentlichen muss ich den Benutzernamen des angemeldeten Benutzers ernten und überprüfen Sie es gegen unsere ActiveDirectory-Instanz. Wenn das fehlschlägt, muss ich nach Request-Variablen suchen und diese überprüfen (dieser Teil ist ziemlich einfach). Wenn DAS dann fehlschlägt, muss ich einen Login-Bildschirm zeigen (ich habe auch einen Griff darüber).

habe ich schon begegnet und verworfen ein paar Lösungen für den Teil I Probleme, bin mit:

  1. Request.ServerVariables („LOGON_USER“) - Dies funktioniert nur, wenn Sie den anonymen Zugriff haben ausgeschaltet in IIS, und das muss aktiviert sein, um Formularauthentifizierung (die ich verwende) zu verwenden.
  2. http://www.thescarms.com/dotnet/IsInRole.aspx - Diese Lösung scheint aus irgendeinem Grund nicht zu funktionieren. Ich vermute, dass die Zeile AppDomain.CurrentDomain.SetPrincipalPolicy (Principal.PrincipalPolicy.WindowsPrincipal) das Problem ist, aber die Bedeutung dieser Zeile ist so weit vergraben, dass ich nicht herausfinden kann, was sie eigentlich versucht.

Antwort

1

HttpRequest.LogonUserIdentity?

+0

Sie müssen Authentifizierung aktiviert haben, andernfalls wird es immer der anonyme/Standardbenutzer sein. –

1

Wenn Sie die Formularauthentifizierung verwenden, haben Sie System.Web.HttpContext.Current.User.Identity.Name ausprobiert?

+0

Noch nicht. Ich denke Current.User wird sein, was ich brauche, aber ich muss ein wenig mehr suchen. Danke für die Idee! –

+0

natürlich! Sie können auch Current.User.IsInRole ("Somerole") ausführen, um herauszufinden, welche Rolle sie haben (wenn Sie Rollen festlegen). – Jason

0

Der Web-Browser wird nicht der lokalen Anmeldeinformationen an dem Web-Server des Benutzers senden, wenn zwei Dinge zutreffen:

  • Der Web-Server für sie fragt (dh anonymer Zugriff deaktiviert ist, und integrierte Windows-Authentifizierung aktiviert ist) .
  • Der Webbrowser wurde so konfiguriert, dass er bei Anforderung lokale Anmeldeinformationen sendet (eine Internet Explorer-Option, die in FireFox über das Plug-In verfügbar ist, nicht sicher über andere Browser). Wenn der Browser nicht konfiguriert wurde, um die Informationen zu senden, und der Webserver fragt, wird der Benutzer in einem Popup-Anmeldebildschirm aufgefordert.