Asp.net core 用户何时登录当前主体

Asp.net core 用户何时登录当前主体,asp.net-core,Asp.net Core,从使用授权的默认Asp.net 5 MVC模板开始,我试图检查登录控制器操作中的用户声明 我无法理解的是,User.IsSignedIn()何时变为true var result = await _signInManager.PasswordSignInAsync(model.Email, model.Password, model.RememberMe, lockoutOnFailure: false); if (result.Succeeded) { if (User.IsSigned

从使用授权的默认
Asp.net 5 MVC
模板开始,我试图检查
登录
控制器操作中的
用户
声明

我无法理解的是,
User.IsSignedIn()
何时变为
true

var result = await _signInManager.PasswordSignInAsync(model.Email, model.Password, model.RememberMe, lockoutOnFailure: false);
if (result.Succeeded)
{
   if (User.IsSignedIn())
   /* more code */
}
在上面的代码中,User.IsSignedIn()返回
false

但在这一次之后的行动中,它重新运行了
true

登录真正发生在哪里


我希望在登录Manager.PasswordSignInAsync期间执行此操作,但显然不是这样。

由于ASP.NET身份验证基于cookie,因此如果为当前请求设置了身份验证cookie,
User.IsSignedIn()
方法将返回
true
。此cookie由
\u signInManager.PasswordSignInAsync(..)
创建,并存储在操作方法的响应(而不是请求)中

下一个操作方法将在请求中接收cookie,这就是为什么您将在该方法中看到
User.IsSignedIn()
return
true
,而不是在实际执行登录的方法中