如何检查用户是否在.Net Core 2.0的Razor页面中进行了身份验证

时间:2017-08-25 19:29:32

标签: asp.net-mvc authentication razor asp.net-core

我想检查用户是否在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 &raquo;</a></p>
}

我如何在Core 2.0中执行此操作?

2 个答案:

答案 0 :(得分:44)

修改:大卫当然是对的。

只需检查UserHttpContext.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();
        }

希望它对某人有帮助!