如果用户未经过身份验证,请转到登录页面

时间:2016-02-11 13:53:04

标签: c# asp.net

任务:如果用户未经过身份验证,请转到登录页面!

我希望在每个控制器的每个操作中都有这种行为。

但是当然,我不希望在每个动作中都有逻辑

if (User == null || User.Identity == null || !User.Identity.IsAuthenticated)
{
    return RedirectToAction("Index","Authentication");
}

对此有什么好处?

我添加到网络配置:

<authentication mode="Forms">
  <forms loginUrl="~/Authentication" timeout="2880"/>
</authentication>

控制器具有属性[authorize],但AuthenticationController除外,我有[AllowAnonymous]

但仍未重定向到登录页面(只显示错误:HTTP错误401.0 - 未经授权)

EDIT2: 解决!

我有

 <remove name="FormsAuthentication" /> 
web.cofig中的

当我删除此行时一切都很好

1 个答案:

答案 0 :(得分:2)

您应该定义成员资格提供程序或为您的系统提供身份的内容。然后,您应该为控制器使用Authorize属性。

如果用户未经过身份验证,则授权attiribute将操作重定向到登录视图。

相关问题