0
我有一個自定義屬性,我手動檢查索賠令牌是否有效。我怎麼做?手動檢查索賠令牌是否可以
public class AuthorizeClaimsAttribute : AuthorizeAttribute {
protected override bool UserAuthorized(IPrincipal user) {
var cookie = HttpContext.Current.Request.Cookies.Get("bearerToken");
if (cookie != null) {
//Check if token is valid, how?
}
return false;
}
}
令牌創建如下:
var identity = new ClaimsIdentity(OAuthDefaults.AuthenticationType);
identity.AddClaim(new Claim("Username", model.Username));
identity.AddClaim(new Claim("IsAdmin", isAdmin.ToString()));
var properties = new AuthenticationProperties() {
IssuedUtc = DateTime.UtcNow,
ExpiresUtc = DateTime.UtcNow.Add(Startup.OAuthOptions.AccessTokenExpireTimeSpan)
};
var ticket = new AuthenticationTicket(identity, properties);
var accessToken = Startup.OAuthOptions.AccessTokenFormat.Protect(ticket);
注:我不能使用現有Authorize
屬性。這就是爲什麼我需要手動檢查它。
所以我需要將令牌保存在某個地方?這是手動驗證我的唯一方法嗎? – MrProgram
當您在持久數據結構中創建'identity' store' var accessToken = Startup.OAuthOptions.AccessTokenFormat.Protect(ticket);'identity.AddClaim(new Claim(「Username」,model.Username))''。然後,當檢查'cookie'時,你也可以對其進行比較。 – Harvey