Windows-Benutzernamen in asp.net mvc-Anfrage erfassen

8

Ich habe eine Intranet-App asp.net mvc Website. gibt es sowieso um den Windows NT Login vom Benutzer zu erfassen ohne ein komplettes Login System auf der Seite zu haben. Ich möchte nicht permissioning, aber ich möchte einige Logging auf dem Server tun, um Anfragen zu verfolgen, etc. .

    
leora 25.01.2010, 14:11
quelle

6 Antworten

12

Sie können HttpContext.Current.User.Identity.Name verwenden, wenn Sie die Site für die Windows-Authentifizierung eingerichtet haben. Viele Browser geben den Benutzernamen transparent weiter.

    
Dan Diplo 25.01.2010, 14:22
quelle
1

Auf welcher Windows-Version läuft diese mvc-App?

Sie könnten Folgendes versuchen:

  • Verwenden Sie den IIS-Manager, um den anonymen Zugriff auf die Site zu deaktivieren und sicherzustellen, dass die Digest- und / oder Windows-Authentifizierung aktiviert ist.
  • Ändern Sie die web.config der mvc-App, um die Windows-Authentifizierung zu verwenden
  • Greifen Sie mithilfe von User.Identity.Name auf den Anmeldenamen im Controller zu.

Würde das tun?

    
IanT8 25.01.2010 14:19
quelle
1

Gehen Sie zur Web.Config-Datei für Ihre Anwendung (stellen Sie sicher, dass es die wichtigste ist, nicht die Web.Config unter Ansichten), vermerken Sie <authentication mode="Forms"> , wenn Sie sie sehen, und fügen Sie Zeilen wie folgt hinzu:

%Vor%

Sie müssen den Abschnitt <authorization> nicht einschließen, aber er ist nützlich, wenn Sie den Zugriff für bestimmte Gruppen und Benutzer zulassen und allen anderen den Zugriff verweigern möchten. Wenn Sie IE verwenden, werden die Anmeldeinformationen automatisch weitergeleitet. Sie können dies testen, indem Sie den Benutzernamen in Ihrer Ansicht ausdrucken:

%Vor%

Wenn Sie Ihre Website mit Firefox oder einem anderen Browser außer IE öffnen, werden Sie zur Eingabe des Benutzernamens und des Passworts aufgefordert, da die Anmeldeinformationen nicht automatisch weitergeleitet werden (obwohl Sie Firefox offenbar als Dan Diplo weiterleiten können) Erwähnungen oben).

Wenn Sie diese Anmeldeinformationen an einen anderen Server, z. B. einen SQL-Server, weiterleiten möchten, bereitet Ihnen das nach meiner Erfahrung Kopfschmerzen, weil Sie auf ein Double-Hop-Problem stoßen. Die einzige Problemumgehung, die ich kenne, besteht darin, IIS und SqlServer auf demselben Server zu hosten oder eine Anmeldung für Ihr Intranet zu haben, damit Sie den Benutzernamen und das Kennwort an SQLServer weitergeben können.

    
James Toomey 31.05.2013 01:02
quelle
1

var s = HttpContext.User.Identity.Name;

    
Admiral Land 21.01.2014 12:28
quelle
1

versuche das.

%Vor%

gibt Domail / User

zurück

Vergessen Sie nicht, dies in web.Config

zu setzen %Vor%     
Diego 28.03.2018 17:35
quelle
0

Wenn Sie IIS für die Verwendung der Windows-Authentifizierung festlegen und sich die Site für Ihre Clients in der Intranetzone befindet, werden die Anmeldungen automatisch ohne Eingabeaufforderungen ausgeführt.

    
blowdart 25.01.2010 14:18
quelle

Tags und Links