0

ASP 4.5 Web サイトでの認証に ClaimsPrincipalPermission を使用しています。

これはうまくいきます。

しかし、ユーザーが許可されていないページを呼び出そうとすると、返されるエラー コードは 500 であり、401 のようなものではありません。

これは予想される動作ですか? 401 は、このページを呼び出せない理由をより多く表現すると思います。

または、エラーがありますか? デバッガーでは、securityexception が正しくスローされていることがわかります。

この動作を変更する方法はありますか? なぜこれが起こるのか誰か知っていますか?

4

3 に答える 3

2

ClaimsPrincipalPermission は SecurityException をスローします。Webフレームワークでよりうまく機能するものを使用したいかもしれません...

ここを参照してください: http://leastprivilege.com/2012/10/26/using-claims-based-authorization-in-mvc-and-web-api/

于 2012-12-19T07:09:55.860 に答える
1

500 エラー コードは、SecurityExceptions の既定の応答のようです。

ASP.NET は、アクセスが拒否されているユーザーであることを必ずしも認識していないため、ASP.NET が認識しているのは SecurityException がどこかにスローされたことだけであるため、私には理にかなっています。Web サイト自体に何かを行うための十分な権限がない可能性があり、その場合は 500 が予想されます。

例外フィルターは、キャッチされていない例外を分析し、どの HTTP コードを返す必要があるかを判断するための優れた方法です。

于 2012-12-18T20:38:25.707 に答える