.Net MVC 4 を使用して 1 つの領域のみを拒否しようとしていますが、結果が得られません。web.configに入れる<authentication mode="Forms" />
と、すべてが拒否されます。すべてのサイトであり、私が望むものではありません。管理領域のみを拒否したいのです。
私は自分の管理エリアに入れましAuthorizeAttribute
たBaseController
が、まだ機能していません:
public class AutenticarAdminAttribute : AuthorizeAttribute
{
public override void OnAuthorization(AuthorizationContext filterContext)
{
base.OnAuthorization(filterContext);
if (!filterContext.HttpContext.User.Identity.IsAuthenticated)
{
filterContext.Result = new RedirectResult("~/admin/login");
}
}
}
Global.asax:filters.Add(new AutenticarAdminAttribute());
私<authentication mode="Forms" />
が web.config から削除するAuthorizeAttribute
と、作業は行われず、IsAuthenticated
常に true になります。
そして、もう一度<authentication mode="Forms" />
web.config に入れると、すべてが拒否されます。
エリアだけを制限することはできません。
管理エリアの BaseController:
[AutenticarAdmin]
public class BaseController : Controller
{
public BaseController()
{
}
}
管理エリアの DefaultAdminController:
public class DefaultController : BaseController
{
public ActionResult Index()
{
return View();
}
}
公開コントローラー:
public class DefaultController : Controller
{
public ActionResult Index()
{
return View();
}
}