【问题标题】:Validate if User/Request is authenticated .net core验证用户/请求是否经过身份验证 .net 核心
【发布时间】:2018-04-06 17:58:18
【问题描述】:

我已经在我的 .net 核心应用程序中实现了 cookie 身份验证和 Novel ldap 身份验证。 我有一个登录屏幕,用户在其中输入他们的凭据,一旦通过身份验证,它就会将他们重定向到主页。在我的登录布局页面上,我想要一个注销链接,该链接将用户从应用程序中注销。在我的 .net mvc 应用程序的早期,我可以这样做:

 @if (Request.IsAuthenticated)
 {
   <li><a href="#">Hello, @ViewData["FullName"] !</a></li>
   <li><a href="@Url.Action("Logout", "Account")">Log Out</a></li>
 }
 else
 {
   <li><a href="@Url.Action("Login", "Account")">Log In</a></li>
 }

我所有的身份验证、重定向等都可以正常工作,但在 .net 核心中相当于 Request.IsAuthenticated 或者我如何检查用户是否经过身份验证并相应地显示链接等。

不胜感激

【问题讨论】:

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


    【解决方案1】:

    上面分享的 svek 应该可以工作。调试以查看您的身份验证是否正确,您的 cookie 设置是否正常。

    特别是对于 .net 核心,这应该可以工作。

     @if (User.Identity.IsAuthenticated)
     {
       <a asp-area="" asp-controller="YouController" asp-action="YourAction">Logout</a>
     }
    

    【讨论】:

      【解决方案2】:

      我认为你正在寻找的是

      User.Identity.IsAuthenticated
      

      【讨论】:

      • 这不起作用。不会抛出任何错误,只是不显示注销链接。
      • 这在用户通过身份验证后工作,这使得它非常无用。当您的令牌缓存具有有效令牌时,它会错误地告诉您您未通过身份验证。
      猜你喜欢
      • 1970-01-01
      • 2019-11-03
      • 2019-02-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多