2013-10-08 3 views
6

Ich brauche meine MVC4-App, um den aktuellen Domänenbenutzer zu erhalten, der am Computer angemeldet ist, der automatisch auf meiner index.cshtml-Seite angemeldet ist.ASP.NET MVC Intranet App mit Windows-Authentifizierung, wie Sie den aktuellen Domänenbenutzer automatisch erhalten?

Der Rest der Anwendung funktioniert wie beabsichtigt, indem das Autorize-Attribut die Aktionen verwendet, die ich brauche.

Ich muss nur sagen, um die App "Holen Sie sich die aktuelle Maschine eingeloggt Benutzer, sichern Sie nichts und nehmen Sie den Benutzer auf die Landing Page".

web.config:

<authentication mode="Windows" /> 

wie dies der Benutzer BLANK auf der Zielseite.

Wenn ich versuche, nur [Authorize] auf meine Indexaktion zu setzen, fragt es nach Anmeldeinformationen und fährt dann fort, wie ich möchte, ohne etwas auf der Zielseite zu sichern.

Gibt es einen Weg um dies zu umgehen?

UPDATE:

Egal, was Sie tun, so scheint es, dass es keine Möglichkeit gibt, die Anmeldeaufforderung und macht die Anwendung automatisch den aktuellen Domain-Benutzer erhalten zu umgehen und ihn in der App anmelden.

+0

Ich habe unten eine getestete Antwort zur Verfügung gestellt, die dem "Update" widerspricht. Könntest du es dir ansehen? Vielen Dank. –

+0

mit welchem ​​Browser versuchen Sie dies? Ich habe festgestellt, dass nur IE sich so verhält. – Michael

Antwort

3

prüfen diese von MSDN

hinzufügen impersonate="true" zusammen mit ihm

<identity impersonate="true"/> 
    <authentication mode="Windows" /> 

Dann

((HttpContext)context).User.Identity as WindowsIdentity 
+0

Nein .. ich habe es versucht und es erneut versucht .. Es fragt immer noch nach Authentifizierung. Anonyme Anmeldung sollte in IIS für diese App aktiviert sein? – e4rthdog

+0

@ e4rthdog, Nein. Anonyme Anmeldung ist nicht erforderlich. –

+0

gerade versucht. Wenn ich nicht anonym aktiviert habe, öffnet sich das Anmeldedialogfeld. Wenn ich anonymiere, dann ist die Benutzeridentität leer, ohne Login-Box – e4rthdog

0

Sie auch die folgenden verwenden können, um Ihre <appSettings> versuchen Sie:

<add key="enableSimpleMembership" value="false" /> 
1

Verwenden Sie die Windows-Authentifizierung und für ASP.NET und IIS, und geben Sie die ASP.NET-URL-Autorisierung in der Datei web.config as shown in this answer an. Wenn der aktuelle Benutzer autorisiert ist, wird der Benutzer automatisch angemeldet.

Getestet mit IE 11, IIS 8.5, Windows Server 2012 R2.

1

Ich bin gerade fertig mit diesem Problem zu kämpfen. Ich sollte vorausschicken, dass dies mit iis 7 auf win 2k8r2 läuft. Die Lösung für mich war, in das Authentifizierungsmenü in iis zu gehen -> wähle die Windows-Authentifizierung -> klicke im rechten Fensterbereich auf Provider -> passe an, so dass nur ntlm in der Liste der verfügbaren Provider ist. Aushandeln scheint der Übeltäter für das Erzwingen der Anmeldeaufforderung zu sein.

+1

Dies war die Antwort für mich (Ausführen von IIS 7.5). – user3256944