public ActionResult Login(LoginViewModel model) { if (!ModelState.IsValid) { return(View(model)); } var responloging = userlogic.LogIng(model.Email, model.Password, util.GetKey, util.GetIV); if (responloging.response) { var Usuario = userlogic.GetUsuariosPorUserName(model.Email); UsuarioViewModel user = new UsuarioViewModel { UserName = Usuario.UserName, Email = Usuario.Email, UserId = Usuario.Id }; SignIn(user); return(RedirectToAction("Index", "Home")); } else { ModelState.AddModelError("", responloging.mensaje); } return(View(model)); }
public override async Task GrantResourceOwnerCredentials(OAuthGrantResourceOwnerCredentialsContext context) { var claims = new List <Claim>(); context.OwinContext.Response.Headers.Add("Access-Control-Allow-Origin", new[] { "*" }); var identity = new ClaimsIdentity(context.Options.AuthenticationType); if (context.UserName == null && context.Password == null) { context.SetError("invalid_grant", "Usuario y contraseña son requeridos."); return; } var responloging = usuariosLogic.LogIng(context.UserName, context.Password, util.GetKey, util.GetIV); if (responloging.response) { var Usuario = usuariosLogic.GetUsuariosPorUserName(context.UserName); Usuario.IntentosFallidos = 0; var responseUpdateIntentosFallidos = usuariosLogic.Guardar(Usuario); if (!responseUpdateIntentosFallidos.response) { context.SetError("invalid_grant", responseUpdateIntentosFallidos.mensaje); return; } UsuarioViewModel user = new UsuarioViewModel { UserName = Usuario.UserName, Email = Usuario.Email, UserId = Usuario.Id }; var jsonUserMonitoreo = JsonConvert.SerializeObject(user); ////claims.Add(new Claim("Usuario", jsonUserMonitoreo)); identity.AddClaim(new Claim("Usuario", jsonUserMonitoreo)); ////context.Validated(new ClaimsIdentity(context.Options.AuthenticationType)); ////context.Validated(claims); //context.Validated(identity); identity.AddClaim(new Claim("sub", context.UserName)); identity.AddClaim(new Claim("role", "user")); context.Validated(identity); } else { context.SetError("invalid_grant", responloging.mensaje); return; } }