我试图仅使用 .Net MVC 4 否认一个领域,但我没有得到结果。当我<authentication mode="Forms" />
输入 web.config 时会发生什么都被拒绝:所有网站都不是我想要的,我只想拒绝管理区域。
我把我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");
}
}
}
全球.asax:filters.Add(new AutenticarAdminAttribute());
如果我<authentication mode="Forms" />
从 web.config 中删除AuthorizeAttribute
不做的工作,IsAuthenticated
总是如此。
当我再次<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();
}
}