我是ASP.NET Core的新手,但我仍然很不舒服。无论如何,我想知道这种方法是否正确或是否存在更好的解决方案。
如果用户已登录,我正在检查每页。如果没有,我将页面重定向到登录页面:
public IActionResult Index()
{
if (User.Identity.IsAuthenticated)
{
return View();
}
else
{
return Redirect("Identity/Account/Login");
}
}
我将其添加到每个页面中。
而不是添加User.Identity.IsAuthenticated(非常干燥),您应该签出DataAnnotations-[AllowAnonymous]
和[Authorize]
。您可以使用这些注释装饰整个控制器或特定方法,以允许对特定功能进行身份验证。
[AllowAnonymous]
public IActionResult Index()
{
if (User.Identity.IsAuthenticated)
{
return View();
}
else
{
return Redirect("Identity/Account/Login");
}
}
[Authorize]
public IActionResult OnlyAuthenticatedUsers()
{
return View();
}
然后,如果用户未通过身份验证,则可以在Startup.cs中添加重定向规则。
查看此: