Пример #1
0
        public Models.SecurityToken Authenticate(string username, string password, HttpContext context)
        {
            var cUser     = _iUserServices.GetUser(username);
            var GlobalKey = _appSettings.Secret;

            if (cUser != null)
            {
                var PasswordUser = _iUserServices.GetPasswords(cUser.UserId).Where(x => x.Active == true).FirstOrDefault();
                if (PasswordUser != null)
                {
                    var salt       = _hashEncrypt.CreateSaltPerUser(cUser.AccountName, GlobalKey);
                    var CheckEqual = _hashEncrypt.AreEqual(password, PasswordUser.Password1, salt);
                    if (CheckEqual)
                    {
                        LoginState(true, username, password, context);
                        var           tokenHandler   = new JwtSecurityTokenHandler();
                        var           key            = Encoding.ASCII.GetBytes(_appSettings.Secret);
                        IdentityModel _IdentityModel = new IdentityModel()
                        {
                            AccountID = cUser.UserId, AccountName = cUser.AccountName, AccountRoleID = (int)cUser.UserGenderId
                        };
                        var jwtSecurityToken = _funcIdentity.CreateSecurityTokenDescriptor(_IdentityModel, key);
                        return(new Models.SecurityToken()
                        {
                            auth_token = jwtSecurityToken
                        });
                    }
                    else
                    {
                        LoginState(false, username, password, context);
                        return(null);
                    }
                }
                else
                {
                    LoginState(false, username, password, context);
                    return(null);
                }
            }
            else
            {
                LoginState(false, username, password, context);
                return(null);
            }
        }