我已经阅读了很多关于它的主题,但我找不到解决方案。 我正在使用管理区域的asp.net mvc 5应用程序。
我创建了一个继承自ActionFilterAttribute
的过滤器,我已将其作为属性添加到我的控制器上。
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
var errorResult = new RedirectToRouteResult(new RouteValueDictionary
{
{ "controller", "Login" },
{ "action", "Index" },
});
if (!filterContext.HttpContext.Request.IsAuthenticated)
{
filterContext.Result = errorResult;
}
base.OnActionExecuting(filterContext);
}
LoginController使用AllowAnonymous
属性。
我尝试登录但是请求未经过身份验证(我在调试模式下看到它)。我需要编辑web.config。
如果我在root web.config中添加以下代码:
<system.web>
<authentication mode="Forms">
<forms loginUrl="~/Admin/Login" timeout="2880" />
</authentication>
</system.web>
它有效但我的应用程序没有任何登录,只有管理区域有。 解决办法是什么? 我无法在web.config区域中编写此代码。 提前谢谢。