public LoginResult Authenticate(string username, string password) { return(new LoginResult() { StatusCode = System.Net.HttpStatusCode.OK, Token = JwtCookieManager.CreateToken(Guid.Parse(me.AccountGuid), 1, me.Name, me.DisplayName, roles.ToArray()) }); }
public LoginResult Authenticate(string username, string password) { HttpStatusCode resultStatus = HttpStatusCode.Unauthorized; string resultToken = null; using (DbConnection connection = GetConnection()) { var result = connection.Query <AccountModel>( "SELECT * FROM account WHERE accountName = @name;", new { name = username }).FirstOrDefault(); if (string.Compare(result?.Name, username, true) == 0) { // compare the password string hashedPassword = HashPassword(password, result.PasswordSalt); if (string.Compare(result.PasswordHash, hashedPassword) == 0) { // password correct resultStatus = HttpStatusCode.OK; // fetch subscription / roles var role = connection.Query <SubscriptionModel>( "SELECT * FROM subscription WHERE accountGuid = @gid;", new { gid = result.Gid.ToByteArray() }).FirstOrDefault(); List <string> roles = new List <string>(); foreach (AccessLevel level in Enum.GetValues(typeof(AccessLevel))) { if ((int)role.AccessLevel >= (int)level) { roles.Add(level.ToString()); } } // token resultToken = JwtCookieManager.CreateToken( result.Gid, result.Id, result.Name, result.DisplayName, roles.ToArray()); } } } return(new LoginResult() { StatusCode = resultStatus, Token = resultToken }); }
public LoginResult Authenticate(string username, string password) { var account = _accountCache.FirstOrDefault(a => a.Username.ToLower() == username.ToLower()); if (account?.PasswordMatches(password) == true) { string token = JwtCookieManager.CreateToken(account.AccountGuid, account.Id, account.Username, account.DisplayName, account.GetRoles()); return(new LoginResult() { StatusCode = System.Net.HttpStatusCode.OK, Token = token }); } return(new LoginResult() { StatusCode = System.Net.HttpStatusCode.Unauthorized }); }