2009-04-13 8 views
8

Ajaxで部分的なビューを返すアクションの場合は、[Authorize]を使用しようとしていました。しかし、私は(私は期待した動作はしていますが)私が好きな動作を取得していないよ。AjaxとPartial Viewsで[Authorize]属性を使用するにはどうすればよいですか?

ロングショットのようです。しかし、この属性を拡張してAJAX呼び出しを「中断」し、ページ全体をログイン画面にリダイレクトする方法はありますか? (私がUpdateTargetIdを設定した場所にログイン画面を返すのとは対照的に)

私は、特定のAjax呼び出しのそれぞれでこれをどうやってやるのかを考えていると思いますが、それは多くのコードを節約できます...

答えて

8

AuthorizeAttributeはこれを行いませんが、コードを集中管理できます。ユーザーが現在ログインしていないときにhttpステータスコード401(許可されていない)を返す新しい属性を作成します。site.masterによって参照されるJavaScriptファイルで、jQuery $ .ajaxErrorイベントを処理します。応答ステータスコードでhttp 401を探し、JavaScript経由でログインページにリダイレクトします。現在、jQueryを使用して作成したAjax呼び出しは、現在のユーザーが承認されていない場合はここで終了します。

関連する問題