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