おそらく、このためのドキュメント要求に置く必要がありますが、あなたは、IAuthenticationFilter
を実装し、それを登録し、その後のようなものを使用してコントローラを飾ることができます始めるために:それを登録[Authorize(Roles = "CanCreateCustomer")]
public class CustomAuthenticationAttribute : Attribute, System.Web.Http.Filters.IAuthenticationFilter
{
public bool AllowMultiple
{
get
{
return true;
}
}
public async Task AuthenticateAsync(HttpAuthenticationContext context, CancellationToken cancellationToken)
{
context.Principal = //get principal here, based on your implementation
}
public async Task ChallengeAsync(HttpAuthenticationChallengeContext context, CancellationToken cancellationToken)
{
await Task.FromResult(0);
}
}
:
を
public static class WebApiConfig
{
public static void Register(HttpConfiguration config)
{
// Web API routes
config.MapHttpAttributeRoutes();
config.Filters.Add(new CustomAuthenticationAttribute());
}
}
私は生産でこれを実装する前に、クレーム承認のためのコンセプトの公表証拠を持っています。フィルターをチェックすることができます:https://github.com/trailmax/ClaimsAuthorisation/blob/master/ClaimsAuth/Infrastructure/Identity/ClaimsAuthorisationFilter.csそして残りのレポについては疑問です。 – trailmax