0
我正在尝试实施cookie身份验证。这里是我的登录操作:ASP.NET WebApi2/MVC5 cookie身份验证
public async Task<IHttpActionResult> Login([FromBody]string email)
{
var user = await UserManager.FindByNameAsync(email);
Authentication.SignOut(DefaultAuthenticationTypes.ApplicationCookie);
var identity =
await UserManager.CreateIdentityAsync(user,
DefaultAuthenticationTypes.ApplicationCookie);
// identity.IsAuthenticated is true, why?
Authentication.SignIn(identity); // identity is correct (name is [email protected]), i checked it
// User.Identity.IsAuthenticated is false here
return Ok();
}
认证是:
private IAuthenticationManager Authentication
{
get
{
return HttpContext.GetOwinContext().Authentication;
}
}
但User.Identity.Name仍然是空的。我做错了什么?我如何获得认证用户?
这里是我的Startup.Auth:
public partial class Startup
{
static Startup()
{
var userManager = new UserManager<IdentityUser>(new UserStore<IdentityUser>(new MyDbContext()));
userManager.UserValidator = new UserValidator<IdentityUser>(userManager)
{
AllowOnlyAlphanumericUserNames = false,
};
UserManagerFactory =() => userManager;
}
public static Func<UserManager<IdentityUser>> UserManagerFactory { get; set; }
public void ConfigureAuth(IAppBuilder app)
{
app.UseCookieAuthentication(new CookieAuthenticationOptions());
}
}
没有帮助。我忘记说我的身份验证是HttpContext.GetOwinContext()。身份验证。改变isPersistent也没有帮助 – user1997649