Bonjour, bonjour !
Après différentes recherches, je me permet de vous solliciter car je pense ne pas bien avoir compris le mécanisme. Voilà le topo:
Je travaille sur un projet web ASP.NET MVC et suis actuellement en train de développer la partie Authentification. Je souhaiterais pouvoir bénéficier des outils offerts par le framework (à savoir, les Authorize, User.Identity & co).
Après recherches, j'ai cru comprendre que lors d'une authentification par formulaire, il fallait valider le ModelState et vérifier les infos login/mdp en BDD et si OK, créer un cookie (FormsAuthentication.SetAuthCookie) puis rediriger l'utilisateur.
Mon cas est particulier: mes utilisateurs se connectent déjà via un SSO qui s'occupe du login/mdp, crée un cookie et transmet l'identifiant utilisateur via le Header. Mon application reçoit donc le login via Header. Je pensais donc: lire le header, le vérifier et si valide, créer le cookie, sinon, rediriger à la page d'identification du SSO.
Voilà le code source correspondant:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 // In Global asax: protected void Session_Start() { String username = Request.Headers["Auth-User"]; if (username != null) { Session.Add(username, "AuthUser"); FormsAuthentication.SetAuthCookie(username, true); } }Dans mon global.asax: pas de pb, il lit le Header, stock l'info dans la variable de session et a priori, crée le cookie de connexion. Par contre, impossible d'exploiter User.Identity dans mon controller.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 // In my controller public ActionResult Login() { if (User.Identity.IsAuthenticated) { ViewData["headers"] = HttpContext.User.Identity.Name; } else { ViewData["headers"] = "fail"; } return View(); }
Un autre topic avec pb similaire: http://stackoverflow.com/questions/2...authentication
L'auteur du topic à l'air de s'en être sortis mais ne fournit pas l'info dans le détail :/
Auriez-vous des pistes qui pourraient m'aider à avancer ? Merci d'avance !!
Partager