检查用户是否使用ASP.NET Core中的基于令牌的身份验证登录

use*_*943 14 c# asp.net access-token asp.net-core

我设法在我的应用程序中实现了这个基于令牌的身份验证系统,但我有一个小问题.如何在方法中检查用户是否对其进行了签名(例如,如果请求中有有效令牌)?那么[授权]?

所以我有控制器,在那个控制器中我想检查用户是否已登录.我想使用它:

if (_signInManager.IsSignedIn(ClaimsPrincipal.Current))
{
    ...
}
Run Code Online (Sandbox Code Playgroud)

但它不起作用,因为ClaimsPrincipal.Current始终为null

Vi1*_*100 45

您不需要使用SigninManager或类似的东西.用户被注入管道(在基本控制器的User属性上),并且它的信息由认证中间件(cookie或令牌)自动填充.所以,在你的控制器上:

bool isAuthenticated = User.Identity.IsAuthenticated;
Run Code Online (Sandbox Code Playgroud)

  • 我试过你的代码,但它说“当前上下文中不存在名称‘用户’” (2认同)
  • 继承自Controller修复了!我简直不敢相信! (2认同)