protected AppUserAuth BuildUserAuthObject(AppUser AuthUser) { AppUserAuth ret = new AppUserAuth(); List <AppUserClaims> claims = new List <AppUserClaims>(); ret.UserName = AuthUser.UserNme; ret.IsAuthenticated = true; ret.BearerToken = new Guid().ToString(); ret.Claims = GetUserClaims(AuthUser); ret.BearerToken = BulidJwt(ret); //foreach (AppUserClaims claim in claims) //{ // try // { // typeof(AppUserAuth).GetProperty(claim.ClaimType) // .SetValue(ret, Convert.ToBoolean(claim.ClaimValue), null); // } // catch // { // } //} return(ret); }
protected string BulidJwt(AppUserAuth AuthUser) { SymmetricSecurityKey key = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(_settings.Key)); List <Claim> JwtClaims = new List <Claim> (); JwtClaims.Add(new Claim(JwtRegisteredClaimNames.Sub, AuthUser.UserName)); JwtClaims.Add(new Claim(JwtRegisteredClaimNames.Jti, Guid.NewGuid().ToString())); //Add custom claims JwtClaims.Add(new Claim("isAuthenticated", AuthUser.IsAuthenticated.ToString().ToLower())); //add custom claims from claim array foreach (var claim in AuthUser.Claims) { JwtClaims.Add(new Claim(claim.ClaimType, claim.ClaimValue)); } // create the jwtSecurityToken var token = new JwtSecurityToken( issuer: _settings.Issuer, audience: _settings.Audiance, claims: JwtClaims, notBefore: DateTime.UtcNow, expires: DateTime.UtcNow.AddMinutes(_settings.MinutesToExpiration), signingCredentials: new SigningCredentials(key, SecurityAlgorithms.HmacSha256)); return(new JwtSecurityTokenHandler().WriteToken(token)); }
public AppUserAuth ValidateUser(AppUser user) { AppUserAuth ret = new AppUserAuth(); AppUser authUser = null; //using (var db =new LoginDbContext()) //{ authUser = db.Users.Where(u => u.UserNme.ToLower() == user.UserNme.ToLower() && u.UserPasswordNme == user.UserPasswordNme) .SingleOrDefault(); //} if (authUser != null) { ret = BuildUserAuthObject(authUser); } return(ret); }