net mvc individual hacer example como asp and authentication windows-authentication asp.net-mvc-5 owin

individual - mvc authentication methods



Owin y Windows Auth(mvc5): utilizando la autenticaciĆ³n de Windows como parte del inicio de sesiĆ³n (1)

Estoy tratando de tener una aplicación web MVC5 que utiliza parcialmente autenticación de Windows.

Lo que quiero decir con eso es que es efectivamente autenticación basada en formularios / cookies, pero con el principal de Windows del usuario solicitante formando parte de sus credenciales de inicio de sesión.

Por ejemplo, la página de inicio de sesión dirá: "Ha sido identificado como somedomain / kierenj . Ingrese el código secreto para iniciar sesión". Si ingresan el código correcto, la cookie se configura y se inician sesión.

Si falla la autenticación de Windows, la página de inicio de sesión seguirá apareciendo, pero estará deshabilitada.

He experimentado con un WindowsPrincipalHanlder como este: https://github.com/JabbR/JabbR/blob/master/JabbR/Middleware/WindowsPrincipalHandler.cs

La esencia de esto es que si habilito la Autenticación de Windows y desactivo la Autenticación anónima, entonces Owin (o presumiblemente la parte de autenticación de cookies) redirige a la página de inicio de sesión, que redirige a la página de inicio de sesión, es un bucle de redireccionamiento.

Tenga en cuenta que estoy usando una configuración Owin muy simplificada. UseCookieAuthentication con el tipo ApplicationCookie y se especifica un LoginPath ; luego llamo a SignIn este modo desde mi controlador de cuenta:

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

(Habiendo verificado primero WindowsIdentity.GetCurrent() por ejemplo)

¿Realmente necesito escribir mi propia versión del middleware de autenticación de cookies de Owin? ¿Puedo obtener la fuente para poder depurar / derivar?


Para evitar el bucle de redireccionamiento, en el constructor del controlador que sirve la página de inicio de sesión, intente configurar Response.SuppressFormsAuthenticationRedirect actual de HttpContext en true