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