Solución:
No es tan simple 🙂
-
En Startup.cs, configure el método.
app.UseCookieAuthentication(options => { options.AutomaticAuthenticate = true; options.AutomaticChallenge = true; options.LoginPath = "/Home/Login"; });
-
Agregue el atributo Autorizar para proteger los recursos que desea proteger.
[Authorize] public IActionResult Index() { return View(); }
-
En el método de acción Home Controller, Login Post, escriba el siguiente método.
var username = Configuration["username"]; var password = Configuration["password"]; if (authUser.Username == username && authUser.Password == password) { var identity = new ClaimsIdentity(claims, CookieAuthenticationDefaults.AuthenticationScheme); HttpContext.Authentication.SignInAsync( CookieAuthenticationDefaults.AuthenticationScheme, new ClaimsPrincipal(identity)); return Redirect("~/Home/Index"); } else { ModelState.AddModelError("","Login failed. Please check Username and/or password"); }
Aquí está el repositorio de github para su referencia: https://github.com/anuraj/CookieAuthMVCSample
Para agregar a la respuesta de Anuraj, varias clases han quedado obsoletas para .Net Core 2. FYI:
Startup.cs – En ConfigureServices:
services.AddAuthentication(CookieAuthenticationDefaults.AuthenticationScheme)
.AddCookie(o => o.LoginPath = new PathString("/account/login"));
Startup.cs – En Configurar:
app.UseAuthentication();
En su cuenta / método de controlador de inicio de sesión / donde sea que esté realizando su autenticación:
var claims = new[] { new Claim(ClaimTypes.Name, "MyUserNameOrID"),
new Claim(ClaimTypes.Role, "SomeRoleName") };
var identity = new ClaimsIdentity(claims, CookieAuthenticationDefaults.AuthenticationScheme);
await context.SignInAsync(
CookieAuthenticationDefaults.AuthenticationScheme,
new ClaimsPrincipal(identity));
// Do your redirect here
Fuentes: https://github.com/aspnet/Announcements/issues/232
https://github.com/aspnet/Security/issues/1310
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)