ASP.NET Web API を使用しています。また、属性を追加して、次のように API コントローラーへのアクセス レベルを指定する機能も気に入っています。
[Authorize]
public IEnumerable<Activity> Get()
ここまでは良いのですが、ロールを使用するとコンセプトが崩れてしまいます。
[Authorize(Roles = "Manager")]
public IEnumerable<Activity> Get()
ユーザーがしばらく前にシステムにログオンした後、ある時点で「禁止」されているリソースにアクセスした可能性があります。ユーザーが再度ログオンしようとしても意味がありません。彼らの正当なアカウントにはその URL へのアクセス権がないためです。しかし現在、間違ったアカウントでログオンしたかのように、403 (禁止) ではなく 401 (無許可) が返されます。ただし、ユーザーは 1 つのアカウントしか持っておらず、ユーザーが他の誰かに属するアカウントを要求することは意図されていません。
他の誰かがこの問題に対処しましたか? これを修正する方法を知っている人はいますか?これを修正するコードを書きたいと思っていますが、現在、どこから始めればよいか途方に暮れています。