コントローラー メソッドで [Authorize(Roles="Admin")] タグを使用したいと考えています。
ユーザーが管理者でない場合、このユーザーをログイン画面に戻したいと思います。ユーザーをログイン ページに戻すデフォルトの動作は、Get URL を使用してユーザーを「アカウント/ログイン」に再ルーティングすることです。
問題は、私の Web サイトのサブページが、ログイン画面を含め、すべて Ajax 呼び出しによって更新された部分的なビューであることです。
私の質問は次のとおり です。以下のクラスを変更して、get リダイレクトの代わりに post リダイレクトを返すことは可能ですか?
public class AjaxAuthorizeAttribute : AuthorizeAttribute
{
override public void OnAuthorization(AuthorizationContext filterContext)
{
base.OnAuthorization(filterContext);
// Only do something if we are about to give a HttpUnauthorizedResult and we are in AJAX mode.
if (filterContext.Result is HttpUnauthorizedResult && filterContext.HttpContext.Request.IsAjaxRequest())
{
filterContext.Result = new RedirectResult("../Account/Login");
}
}
}