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; } }
public HttpResponseMessage RegistrarUsuario(RegistroUsuarioModelRequest request) { RespondModel respondModel = new RespondModel(); ResponseMsj responseMsj = new ResponseMsj(); if (!ModelState.IsValid) { //var ErrorList = ModelState.Keys //.SelectMany(key => ModelState[key].Errors.Select(x => new { Error = key + " " + x.ErrorMessage }) //.ToList()); var ErrorList = ModelState.Keys .SelectMany(key => ModelState[key].Errors.Select(x => new { Error = x.ErrorMessage }) .ToList()); respondModel.SetResponse(false, string.Join("\n", ErrorList.Select(x => x.Error).ToList())); return(responseMsj.CreateJsonResponse(respondModel, HttpStatusCode.BadRequest)); } else { var perfil = perfilseg.GetPerfilbyId(1); var ValidPassword = CheckPassword(request.Password, perfil.LenMinPass, perfil.CantLetrasMin, perfil.CantLetrasMayMin, perfil.CantNumeroMin, perfil.CantCharEspecialMin); if (!ValidPassword.IsValid) { respondModel.SetResponse(false, string.Join("\n", ValidPassword.Mensajes)); return(responseMsj.CreateJsonResponse(respondModel, HttpStatusCode.BadRequest)); } respondModel = userlogic.RegistrarUsuario(new Entidades.Usuarios { Email = request.Email, Password = util.encriptar(request.Password) }); if (!respondModel.response) { return(responseMsj.CreateJsonResponse(respondModel, HttpStatusCode.BadRequest)); } /*Creando codigo de validacion*/ var Usuario = userlogic.GetUsuariosPorUserName(request.Email); var codigoValidacion = codigoValidacionUsuarioLogic.GenerarCodigoValidacionEmailUsuario(Usuario.Id, util.GetKey, util.GetIV); if (codigoValidacion == string.Empty) { respondModel.SetResponse(false, "Error al generar Pin de Validación"); return(responseMsj.CreateJsonResponse(respondModel, HttpStatusCode.BadRequest)); } //string MessageBody = System.IO.File.ReadAllText(System.Web.HttpContext.Current.Request.MapPath("~\\Content\\index.htm")) ; string MessageBody = System.IO.File.ReadAllText(System.Web.HttpContext.Current.Request.MapPath("~\\Content\\email.html")); MessageBody = MessageBody.Replace("**To**", Usuario.Email); MessageBody = MessageBody.Replace("**Codigo**", codigoValidacion); MessageBody = MessageBody.Replace("**Anio**", DateTime.Now.Year.ToString()); //mailer.SendMail(Usuario.Email, "Confirmación de usuario", MessageBody); //mailer.SendMail(Usuario.Email, "Confirmación de usuario", MessageBody); mailer.SendMail(Usuario.Email, "Confirmación de usuario", MessageBody); //mailer.EnviarCorreoGmailAccesTokenAsync("*****@*****.**", "NJIFYUjss1OwfQNFXvWSWr6l", Usuario.Email,"Codigo de Activación de Cuenta", codigoValidacion); return(responseMsj.CreateJsonResponse(respondModel, HttpStatusCode.OK)); } }