解決できなかったシナリオがあります。
私は、mvc 用の独自のカスタム認証属性を作成しようとしています。私が追加したい主な機能は、ユーザーが特定の役割に属していない場合にリダイレクトされる場所を変更できるようにすることです。認証されていない場合、システムがそれらをログインページに送り返すことは気にしませんが、認証されているがそのアクションメソッドへのアクセスが許可されていない場合、どこに送信するかを選択したいと思います。
これが私がやりたいことです:
public class CustomAuthorizeAttribute : AuthorizeAttribute
{
public string Action;
public string Controller;
protected override bool AuthorizeCore(System.Web.HttpContextBase httpContext)
{
// if User is authenticated but not in the correct role
string url = Url.Action(this.Action, this.Controller);
httpContext.Response.Redirect(url);
}
}
追加のボーナスとして、リダイレクトを行う前に ViewContext と TempData にアクセスしたいと思います。
属性で UrlHelper と ViewContext をインスタンス化する方法について何か考えはありますか?