Bonjours à tous,
Sur un projet existant en MVC 5, j'ai configuré l'utilisation de l'authentification par Owin. L'utilisateur a le choix entre se connecter avec un compte applicatif (login/password) ou bien par des fournisseurs externes (Google+, LinkedIn).
Pour ce qui est des connexions externes par de soucis, l'authentification se fait correctement, par contre pour l'authentification classique, tout ce déroule correctement, le SignIn via OwinContext se fait sans erreur mais quand j'inspecte la variable HttpContext.Current.GetOwinContext().Authentication.User.Identity.IsAuthenticated celle-ci est toujours à false et le cookie n'est pas créé, du coup sur le redirect en fin de l'action, je me retrouve à nouveau sur la page de login.
J'ai créé un projet "from scratch" en suivant le tuto suivant : Owin et l'authentification se fait correctement. J'ai donc fait exactement pareil dans mon projet mais toujours le même résultat.
Voici le code utilisé :
Startup.cs
Login.cs
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 var cookieOptions = new CookieAuthenticationOptions { AuthenticationType = "ApplicationCookie", LoginPath = new PathString(url.Action("Login", "Session", new { lang = "fr" })), }; app.UseCookieAuthentication(cookieOptions);
Si quelqu'un à déjà rencontré le problème ou si vous avez une idée.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 var claims = new List<Claim>(); claims.Add(new Claim(ClaimTypes.NameIdentifier, user.Id.ToString())); claims.Add(new Claim(ClaimTypes.Name, (user.DisplayName))); claims.Add(new Claim("LastName", user.LastName)); claims.Add(new Claim("FirstName", user.FirstName)); claims.Add(new Claim("Email", user.Email)); claims.Add(new Claim("Avatar", user.Avatar)); claims.Add(new Claim("Mode", "classic")); ClaimsIdentity identity = new ClaimsIdentity(claims, authenticationType); AuthenticationManager.SignIn(identity);
Partager