Exemplo n.º 1
0
        public IHttpActionResult Post(UserData user)
        {
            if (user != null)
            {
                var userData = _dbContext.UserLoginData.FirstOrDefault(u => u.Username == user.username && u.Password == user.password);

                if (userData != null)
                {
                    AuthenticatedDataModel authData = new AuthenticatedDataModel();
                    authData.username = userData.Username;
                    authData.token    = GenerateToken(userData, authData);

                    authData.isAuthenticated = true;

                    return(Ok(authData.token));
                }
                else
                {
                    return(Unauthorized());
                }
            }
            else
            {
                return(Unauthorized());
            }
        }
Exemplo n.º 2
0
        private string GenerateToken(UserLoginData userData, AuthenticatedDataModel authData)
        {
            string security          = "rewkjbwfrwehbfnmb1bbervewbfvfbdskfiuhisdhbdsjfsdbfvsdfvdsvfdsfndsvfbvdsbfvsdvfdsfdsfsdfsdf234234234234ewfrew4w432rewfdfdsfsdfds";
            SymmetricSecurityKey key = new SymmetricSecurityKey(System.Text.Encoding.Default.GetBytes(security));

            List <Claim> claimsData = new List <Claim>();

            claimsData.Add(new Claim("username", userData.Username));
            claimsData.Add(new Claim("userid", userData.Id.ToString()));

            var userRoles = from r in _dbContext.UserRoles
                            join rd in _dbContext.Roles
                            on r.RoleId equals rd.RoleId
                            where r.UserId == userData.Id
                            select rd.RoleName;

            StringBuilder strRoles = new StringBuilder();

            foreach (var role in userRoles)
            {
                authData.roles.Add(role);

                strRoles.Append(role).Append(",");
            }

            claimsData.Add(new Claim("role", strRoles.ToString()));

            var token = new JwtSecurityToken(
                issuer: "Jwt.Net.Api",
                audience: "localhost:4200",
                claims: claimsData,
                notBefore: DateTime.UtcNow,
                expires: DateTime.Now.AddMinutes(10),
                signingCredentials: new SigningCredentials(key, SecurityAlgorithms.HmacSha256)
                );

            return(new JwtSecurityTokenHandler().WriteToken(token));
        }