「SomeController」というコントローラーがあります。ユーザーがログインしているかどうか、またはそのコントローラーでアクションを実行する権限があるかどうかを確認したい。そのために、私はその記事http://blog.wekeroad.com/blog/aspnet-mvc-securing-your-controller-actions/を読み、独自のクラス (テスト) を作成しました。
public class BaseFilter : ActionFilterAttribute
{
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
if (!filterContext.HttpContext.User.Identity.IsAuthenticated)
{
FormsAuthentication.RedirectToLoginPage();
}
//here will be checking the user permissions if he's logged in
}
}
[BaseFilter]
public class SomeController : BaseController
{
...
}
しかし、あなたが理解できるように、そのコントローラーからアクションを実行したいときは無限ループになります。それで、それに対処する方法は?