私はそれを処理するための単純な属性を書くだけになりました。追加の設定がなければ、箱から出してすぐにフレームワークに何も見つかりませんでした。以下に記載されています。
public class ClaimsAuthorizeAttribute : AuthorizeAttribute
{
private string claimType;
private string claimValue;
public ClaimsAuthorizeAttribute(string type, string value)
{
this.claimType = type;
this.claimValue = value;
}
public override void OnAuthorization(AuthorizationContext filterContext)
{
var user = filterContext.HttpContext.User as ClaimsPrincipal;
if (user != null && user.HasClaim(claimType, claimValue))
{
base.OnAuthorization(filterContext);
}
else
{
base.HandleUnauthorizedRequest(filterContext);
}
}
}
もちろん、コントローラー、アクション、動詞のトリプレットを何らかの形でクレームに使用することに満足している場合は、型と値のパラメーターを削除できます。