2011-01-28 11 views
3

AuthorizeAttributeJsonResultを一緒に使用する最も単純な方法は、ユーザーが承認されていないときにアプリケーションがログインページではなくJsonエラーを返すようにすることです。ASP.NET MVC JsonResultとAuthorizeAttribute

私が現在考えているのは、AuthorizeAttributeを拡張するか、またはIAuthorizationFilterを実装する新しい属性を作成することです。

答えて

3

アクションからAuthorizeAttributeを削除してください。

if (!User.Identity.IsAuthenticated) 
    return Json("Need to login"); 

をしたり、好きなメッセージを返します。

次に、あなたの行動の最初の行で、これを挿入します。

+2

他のクラスにロジックをリファクタリングしない限り、それはちょうど悪いデザインのようです。複数のアクションのエラーメッセージを変更する必要がある場合はどうすればよいですか?私はそれが起こっていることはわかりませんが、あなたは決して知りません... – KPthunder

+5

許可されたユーザーをチェックする独自の属性を作成し、そうでない場合、リダイレクトする代わりにjsonオブジェクトを返します。 – ajma

+1

複数のエラーメッセージが必要な場合は、リソースを保持するリソースを使用するか、jsonresultを返すときに参照できる静的な文字列にします。 – ajma

関連する問題