C# 无法立即获取当前用户身份详细信息
在MVC5项目中,我试图在调用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
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返回给客户端后发生的。