C# 无法立即获取当前用户身份详细信息

C# 无法立即获取当前用户身份详细信息,c#,asp.net-mvc,asp.net-identity,C#,Asp.net Mvc,Asp.net Identity,在MVC5项目中,我试图在调用AuthenticationManager.SignIn方法后立即获取User.Identity详细信息。此时,它会立即提供空值。但在重定向到另一个Actor 1到2次后,它提供了预期的详细信息 这是我在SignInAsync AuthenticationManager.SignOut(DefaultAuthenticationTypes.ExternalCookie); var identity = await UserManager.CreateIdentity

在MVC5项目中,我试图在调用
AuthenticationManager.SignIn
方法后立即获取
User.Identity
详细信息。此时,它会立即提供空值。但在重定向到另一个Actor 1到2次后,它提供了预期的详细信息

这是我在
SignInAsync

AuthenticationManager.SignOut(DefaultAuthenticationTypes.ExternalCookie);
var identity = await UserManager.CreateIdentityAsync(user, DefaultAuthenticationTypes.ApplicationCookie);
AuthenticationManager.SignIn(new AuthenticationProperties() { IsPersistent = isPersistent }, identity); 
从这里,我通过服务类从控制器操作调用该方法

if (await accountService.LoginAsync(model))
{
    var user = User.Identity.Name; //Here value is showing ""
}

但在重定向到另一个操作后,这段代码返回当前登录的用户名。有什么理由这样做吗

非常奇怪,为什么您觉得需要异步返回登录标识?请尝试此HttpContext.Current.User.identity.name此问题以前已被询问过多次。身份验证发生在返回到客户机之后以及客户机再次调用服务器时。这是因为Cookie只能在客户端发送后才能读取,这是在您将这些Cookie返回给客户端后发生的。