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); } }
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; }
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); }
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; } }