J’essaie d’utiliser owin authentication manager pour authentifier les utilisateurs, mais User.Identity.IsAuthenticated est toujours false.
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 PathSsortingng("/Account/Login"), LogoutPath = new PathSsortingng("/Account/LogOff"), ExpireTimeSpan = TimeSpan.FromDays(7) }); } }
Une partie de l’action d’authentification:
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); }
L’identité est créée avec succès, mais la méthode SignIn ne connecte pas d’utilisateur. Qu’est-ce qui ne va pas?
C’est une erreur très stupide. J’ai oublié d’appeler la méthode ConfigureAuth
.
public partial class Startup { public void Configuration(IAppBuilder app) { ConfigureAuth(app); // <-- this app.MapSignalR(); } }