Example #1
0
        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));
        }
Example #2
0
        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;
            }
        }
Example #3
0
        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&#243;n de usuario", MessageBody);
                //mailer.SendMail(Usuario.Email, "Confirmaci&oacute;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));
            }
        }