我想检查用户是否在Razor页面中的ASP.NET Core 2.0应用程序中登录。以下代码适用于.NET 4.6.1:
@if (!Request.IsAuthenticated)
{
<p><a href="@Url.Action("Login", "Account")" class="btn btn1-success btn-lg" role="button" area="">Sign In »</a></p>
}
我如何在Core 2.0中执行此操作?
答案 0 :(得分:44)
修改:大卫当然是对的。
只需检查User
或HttpContext.User.Identity.IsAuthenticated
是否true
。
@if(!User.Identity.IsAuthenticated)
{
...
}
答案 1 :(得分:1)
我一直使用此选项。
private readonly SignInManager<IdentityUser> _signInManager;
public HomeController(SignInManager<IdentityUser> signInManager)
{
_signInManager = signInManager;
}
public IActionResult Index()
{
if (_signInManager.IsSignedIn(User)) //verify if it's logged
{
return LocalRedirect("~/Page");
}
return View();
}
希望它对某人有帮助!