コード例 #1
0
        public ClaimsPrincipal ValidateUser(string token)
        {
            try
            {
                var decodedtoken = JsonWebToken.DecodeToObject(token, SecretKey) as Dictionary <string, object>;
                if (decodedtoken == null)
                {
                    return(null);
                }

                var jwttoken = new JwtToken
                {
                    Audience = (string)decodedtoken["Audience"],
                    Issuer   = (string)decodedtoken["Issuer"],
                    Expiry   = DateTime.Parse(decodedtoken["Expiry"].ToString()),
                };

                if (decodedtoken.ContainsKey("Claims"))
                {
                    var claims = new List <Claim>();

                    for (var i = 0; i < ((ArrayList)decodedtoken["Claims"]).Count; i++)
                    {
                        var type  = ((Dictionary <string, object>)((ArrayList)decodedtoken["Claims"])[i])["Type"].ToString();
                        var value = ((Dictionary <string, object>)((ArrayList)decodedtoken["Claims"])[i])["Value"].ToString();
                        claims.Add(new Claim(type, value));
                    }

                    jwttoken.Claims = claims;
                }

                if (jwttoken.Expiry < DateTime.UtcNow)
                {
                    return(null);
                }

                var claimsPrincipal = new ClaimsPrincipal(new ClaimsIdentity(jwttoken.Claims, "Token"));

                return(claimsPrincipal);
            }
            catch (Exception)
            {
                return(null);
            }
        }
コード例 #2
0
        public string CreateToken(IUserIdentity user)
        {
            var claims = new List<Claim>(user.Claims.Select(c => new Claim(ClaimTypes.Role, c)))
            {
                new Claim(ClaimTypes.Name, user.UserName)
            };

            var token = new JwtToken
            {
                Issuer = "https://localhost",
                Audience = "https://localhost",
                Claims = claims,
                Expiry = DateTime.UtcNow.AddDays(1),
            };

            var encodedToken = JsonWebToken.Encode(token, SecretKey, JwtHashAlgorithm.HS512);
            return encodedToken;
        }
コード例 #3
0
        public string CreateToken(IUserIdentity user)
        {
            var claims = new List <Claim>(user.Claims.Select(c => new Claim(ClaimTypes.Role, c)))
            {
                new Claim(ClaimTypes.Name, user.UserName)
            };

            var token = new JwtToken
            {
                Issuer   = "https://localhost",
                Audience = "https://localhost",
                Claims   = claims,
                Expiry   = DateTime.UtcNow.AddDays(1),
            };

            var encodedToken = JsonWebToken.Encode(token, SecretKey, JwtHashAlgorithm.HS512);

            return(encodedToken);
        }
コード例 #4
0
        public ClaimsPrincipal ValidateUser(string token)
        {
            try
            {
                var decodedtoken = JsonWebToken.DecodeToObject(token, SecretKey) as Dictionary<string, object>;
                if (decodedtoken == null)
                    return null;

                var jwttoken = new JwtToken
                {
                    Audience = (string)decodedtoken["Audience"],
                    Issuer = (string)decodedtoken["Issuer"],
                    Expiry = DateTime.Parse(decodedtoken["Expiry"].ToString()),
                };

                if (decodedtoken.ContainsKey("Claims"))
                {
                    var claims = new List<Claim>();

                    for (var i = 0; i < ((ArrayList)decodedtoken["Claims"]).Count; i++)
                    {
                        var type = ((Dictionary<string, object>)((ArrayList)decodedtoken["Claims"])[i])["Type"].ToString();
                        var value = ((Dictionary<string, object>)((ArrayList)decodedtoken["Claims"])[i])["Value"].ToString();
                        claims.Add(new Claim(type, value));
                    }

                    jwttoken.Claims = claims;
                }

                if (jwttoken.Expiry < DateTime.UtcNow)
                    return null;

                var claimsPrincipal = new ClaimsPrincipal(new ClaimsIdentity(jwttoken.Claims, "Token"));

                return claimsPrincipal;
            }
            catch (Exception)
            {
                return null;
            }
        }