私は asp.net WebAPI を使用しており、URI を要求しているユーザーが実際にデータを取得できるかどうかを簡単に確認するカスタム ActionFilter を作成する必要があります。
これらのユーザーは、基本認証を介して Web サービスを使用することを既に承認されており、そのロールはカスタム ロール プロバイダーを介して検証されています。
最後に、URI のパラメーターを使用して要求しているデータを表示する権限があることを確認する必要があります。
これが私のコードです:
public class AccessActionFilter : FilterAttribute, IActionFilter
{
public System.Threading.Tasks.Task<System.Net.Http.HttpResponseMessage> ExecuteActionFilterAsync(HttpActionContext actionContext, System.Threading.CancellationToken cancellationToken, Func<System.Threading.Tasks.Task<System.Net.Http.HttpResponseMessage>> continuation)
{
var result = //code to see if they have permission returns either 0 or 1
if (result==0) {
throw new ArgumentException("You do not have access to this resource");
}
return continuation();
}
}
現在、私が望んでいるものではないエラーをスローするだけです。むしろ戻りたいSystem.Net.HttpStatusCode.Unauthorized
のですが、オーバーライドしているメソッドに少し不満があり、完全には理解していません。
その値を返すにはどうすればよいですか?