6

Ich versuche, eine MVC5 Webapp, die teilweise Windows Auth verwendet.Owin und Windows Auth (mvc5) - mit Windows-Authentifizierung als Teil der Anmeldung

Was ich damit meine, ist es effektiv Formen/Cookie-basierte Auth, aber mit dem Windows-Principal des anfragenden Benutzers bilden eine Teil ihrer Anmeldeinformationen.

Zum Beispiel wird auf der Anmeldeseite Folgendes angezeigt: "Sie wurden als Somedomain \ kierenj identifiziert. Bitte geben Sie den Geheimcode ein, um sich anzumelden." Wenn sie den richtigen Code eingeben, wird der Cookie gesetzt und sie sind angemeldet.

Wenn Windows Auth fehlschlägt, dann würde die Anmeldeseite immer noch angezeigt, aber deaktiviert werden.

Ich habe mit einem WindowsPrincipalHanlder wie dies experimentiert: https://github.com/JabbR/JabbR/blob/master/JabbR/Middleware/WindowsPrincipalHandler.cs

Der Kern ist es, wenn ich die Windows-Authentifizierung und deaktiviert anonyme Authentifizierung aktiviere, dann Owin (oder vermutlich das Cookie Auth Teil davon) Umleitungen an den Login-Seite - die auf die Login-Seite umleitet - es ist eine Redirect-Schleife.

Hinweis Ich verwende ein sehr vereinfachtes Owin-Setup. UseCookieAuthentication mit ApplicationCookie Typ und LoginPath spezifiziert; dann nenne ich SignIn wie dies von meinem Konto Controller:

 var claims = new[] { 
      new Claim(ClaimTypes.Name, "Username"), 
      new Claim(ClaimTypes.Role, "AuthenticatedUser") 
     }; 
     AuthenticationManager.SignIn(new ClaimsIdentity(claims, DefaultAuthenticationTypes.ApplicationCookie)); 

(WindowsIdentity.GetCurrent() zum Beispiel zuerst geprüft hat)

Muss ich meine eigene schreiben müssen Version des Owin Cookie Auth Middleware wirklich? Kann ich die Quelle bekommen, damit ich debuggen/ableiten kann?

+0

waren Sie jemals in der Lage, um herauszufinden, auf diese Frage eine Antwort Einstellung? – Phil

+2

Hilft dies - https://github.com/MohammadYounes/MVC5-MixedAuth/tree/Update3 -? – Bringer128

Antwort

-2

Um die Umleitung Schleife, im Konstruktor des Controllers zu vermeiden, die die Login-Seite dient, versuchen aktuelle Httpcontext der Response.SuppressFormsAuthenticationRedirect zu true

+0

Das hilft überhaupt nicht – Phil