0
WebApiコントローラにAuthorize
属性を実装しようとしています。 Authorize
を実装する方法に関するリソースが見つかりました。さらに、Authorizationを実装するときに、スレッドとHttpContextプリンシパルを設定する必要があります。しかし、私は認可ロジックをどのように/どこで書くのかの例は見つけられません。C#属性ロジックの承認
public class MyController : ApiController
{
[Route("")]
[Authorize]
public async Task<IHttpActionResult> Get() {}
}
public class MyAuthorizationProvider
{
public void AuthorizeIGuess()
{
string authHeader = HttpContext.Request.Headers.GetValues("Authorization").FirstOrDefault();
// do stuff with auth header
// create principal
HttpContext.Current.User = ...;
Thread.CurrentPrincipal = ...;
}
}
方法は、それがAuthorize
のために使用されているように、私のセットアップMyAuthorizationProvider
やる、と私は私の認証コンテキストを設定する方法このでしょうか?あなたはAuthorizeAttribute
public class MyAuthorizationProvider : AuthorizeAttribute
{
//Write your validation logic here.
}
を継承し、AuthorizeAttribute
を継承する場合
public class MyController : ApiController
{
[Route("")]
[MyAuthorizationProvider]
public async Task<IHttpActionResult> Get() {}
}
のように、このオーバーライドの許可属性を使用する必要が
単純に '[Authorize]'が使用されている例は、あくまでも抽象的な例ですか? '[Authorize]'属性を再利用することは可能ですか、それとも常に拡張/名前変更されていますか? –
私はそれを試したことはありません。しかし、私はあなたがそれを再利用できると思います。 –