Example #1
0
 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
            });
        }
Example #3
0
        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
            });
        }