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

本文关键字:登录 用户 身份验证 如果 | 更新日期: 2023-09-27 18:34:15

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

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

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

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

对此有什么好的实践?


我添加到网络配置:

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

具有属性 [授权],除了身份验证控制器,其中我有 [允许匿名]

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


编辑2:解决!

我有

 <remove name="FormsAuthentication" /> 

在 web.cofig 中

当我删除这一行时,一切都很好

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

你应该定义成员资格提供程序,或者为系统提供身份。然后,应为控制器使用"授权"属性。

授权属性在用户未通过身份验证时将操作重定向到登录视图。