Owin Authentication.SignIn不工作
我尝试使用owin身份validation管理器来validation用户,但User.Identity.IsAuthenticated仍然是假的。
Startup.cs
public partial class Startup { public void Configuration(IAppBuilder app) { app.MapSignalR(); } }
Startup.Auth.cs
public partial class Startup { public static Func<UserManager> UserManagerFactory { get; set; } public Startup() { UserManagerFactory = () => { var userManager = new UserManager(new CustomUserStore()); return userManager; }; } public void ConfigureAuth(IAppBuilder app) { app.UseCookieAuthentication(new CookieAuthenticationOptions { AuthenticationType = DefaultAuthenticationTypes.ApplicationCookie, LoginPath = new PathString("/Account/Login"), LogoutPath = new PathString("/Account/LogOff"), ExpireTimeSpan = TimeSpan.FromDays(7) }); } }
身份validation操作的某些部分:
private async Task SignInAsync(ApplicationUser user, bool isPersistent) { var authManager = return HttpContext.GetOwinContext().Authentication; authManager.SignOut(DefaultAuthenticationTypes.ApplicationCookie); var identity = await userManager.CreateIdentityAsync(user, DefaultAuthenticationTypes.ApplicationCookie); authManager.SignIn(new AuthenticationProperties { IsPersistent = isPersistent }, identity); }
身份创建成功但SignIn方法不签署用户。 怎么了?
这是一个非常愚蠢的错误。 我忘了调用ConfigureAuth
方法。
public partial class Startup { public void Configuration(IAppBuilder app) { ConfigureAuth(app); // <-- this app.MapSignalR(); } }