Пример #1
0
        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);
        }
Пример #2
0
        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));
        }
Пример #3
0
        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);
        }