コード例 #1
0
        public async Task <Usuarios> Authenticate([FromBody] dtoLogin login)
        {
            var user = _context.Usuarios.Where(u => u.Email == login.email && u.Password == login.pwd).FirstOrDefault();

            //Una vez logeado, se añade el token
            if (user != null)
            {
                var claims = new[]
                {
                    new Claim(JwtRegisteredClaimNames.Sub, login.email),
                    new Claim(JwtRegisteredClaimNames.Jti, Guid.NewGuid().ToString()),
                };

                var key   = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(_config["JWTSettings:SecretKey"]));
                var creds = new SigningCredentials(key, SecurityAlgorithms.HmacSha256);

                var token = new JwtSecurityToken(_config["JWTSettings:Issuer"],
                                                 _config["JWTSettings:Audience"],
                                                 claims,
                                                 expires: DateTime.Now.AddDays(60),
                                                 signingCredentials: creds);

                user.Token = new System.IdentityModel.Tokens.Jwt.JwtSecurityTokenHandler().WriteToken(token);
            }

            return(user);
        }
コード例 #2
0
        public ActionResult Login(string asParametros)
        {
            try
            {
                dtoLogin lodto = JsonConvert.DeserializeObject <dtoLogin>(asParametros);

                ResultadoOperacion <bool> loResultado = Post <bool>(
                    JsonConvert.SerializeObject(
                        new EnvioParametros <dtoLogin>(lodto.Usuario, lodto.Password, lodto))
                    , Variables.RutaApi() + "api/Seguridad/ValidarUsuario");

                if (loResultado.Error)
                {
                    throw new Exception(loResultado.Mensaje);
                }

                if (loResultado.Datos)
                {
                    Utilidades.Login.EstablecerSesion(lodto.Usuario, lodto.Password);
                }
                else
                {
                    throw new Exception("Los datos ingresados son inválidos");
                }

                return(RedirectToAction("Inicio", "Principal"));
            }
            catch (Exception aoExcepcion)
            {
                EstablecerMensajeError(aoExcepcion.Message);
                return(View(new LoginViewModel()));
            }
        }
コード例 #3
0
ファイル: LoginController.cs プロジェクト: EdutechSRL/Adevico
        // POST api/login
        /// <summary>
        /// Login al sistema. Funziona SOLO il metodo in POST.
        /// </summary>
        /// <param name="data">JSon Object</param>
        /// <returns></returns>
        /// <example>
        /// data:
        ///  { "User":"******", "password":"******", "deviceid":"deviceCode", "TokenType":" None = 0|AdevicoWeb = 1|Mobile = 20"  }
        ///
        /// User = login
        /// password = password
        /// deviceid = id dispositivo. Vuoto o null per "SingleSignOn".
        /// </example>
        public dtoLogin Post(dtoLoginData data)
        {
            dtoLogin loginInfo = new dtoLogin();

            if (!String.IsNullOrEmpty(data.User) || !String.IsNullOrEmpty(data.Password))
            {
                loginInfo = coreApiService.PersonLogin(data.User, data.Password, data.DeviceId, data.TokenType);
            }
            else
            {
                loginInfo.Error = AuthenticationError.ParameterInvalid;
            }

            //if (obj["User"] + "" != "" && obj["password"] + "" != "")
            //{
            //    string deviceInfo = (obj["deviceid"] != null) ? obj["deviceid"].ToString() : "";
            //    loginInfo = coreApiService.PersonLogin(obj["User"].ToString(), obj["password"].ToString(), deviceInfo);
            //}

            switch (loginInfo.Error)
            {
            case AuthenticationError.Internal:
                throw new HttpResponseException(HttpStatusCode.InternalServerError);
                break;

            case AuthenticationError.UserDisabled:
                throw new HttpResponseException(HttpStatusCode.Forbidden);
                break;

            case AuthenticationError.PasswordExpired:
                throw new HttpResponseException(HttpStatusCode.Forbidden);
                break;

            case AuthenticationError.CredentialInvalid:
                throw new HttpResponseException(HttpStatusCode.Forbidden);
                break;

            case AuthenticationError.TokenInvalid:
                throw new HttpResponseException(HttpStatusCode.Forbidden);
                break;

            case AuthenticationError.UserNotFound:
                throw new HttpResponseException(HttpStatusCode.Forbidden);
                break;
            }

            //if(loginInfo.Error != AuthenticationError.None || loginInfo.Error != AuthenticationError.PolicyPending)
            //    throw new Exception(loginInfo.Error.ToString());

            return(loginInfo);

            //if (ManagerLogin.hasValidAccess(obj["User"].ToString(), obj["password"].ToString()))
            //{
            //    Guid g = Guid.NewGuid();
            //    return g;
            //}
            //throw new HttpResponseException(HttpStatusCode.Forbidden);
        }
コード例 #4
0
        public async Task <IActionResult> Login([FromBody] dtoLogin login)
        {
            var user = await _repo.Login(login.username, login.password);

            if (user == null)
            {
                return(Unauthorized());
            }
            var claims = new[]
            {
                new Claim(ClaimTypes.NameIdentifier, user.Id.ToString()),
                new Claim(ClaimTypes.Name, user.UserName)
            };
            // var symmetricKey = new SymmetricSecurityKey(System.Text.Encoding.UTF8.
            //                     GetBytes(_config.GetSection("AppSettings:Token").Value));

            var symmetricKey = new SymmetricSecurityKey(System.Text.Encoding.UTF8.
                                                        GetBytes("Super Secret Key "));

            var creds = new SigningCredentials(symmetricKey, SecurityAlgorithms.HmacSha512Signature);

            var tokenDescriptor = new SecurityTokenDescriptor
            {
                Subject            = new ClaimsIdentity(claims),
                Expires            = DateTime.Now.AddDays(1),
                SigningCredentials = creds
            };

            var tokenHandler = new JwtSecurityTokenHandler();

            var token = tokenHandler.CreateToken(tokenDescriptor);

            return(Ok(new {
                token = tokenHandler.WriteToken(token)
            }));
        }
コード例 #5
0
        public bool Login(dtoLogin login)
        {
            var isLoggedIn = securityService.Login(login.Username, login.Password);

            return(isLoggedIn);
        }
コード例 #6
0
 public bool ValidarUsuario(dtoLogin aoDto)
 {
     return(true);
 }
コード例 #7
0
 public LoginViewModel()
 {
     ObjetoLogin = new dtoLogin();
 }