コード例 #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));
        }
コード例 #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;
            }
        }