Bonjour,
J'ai des problèmes d'authentification dans mon code. Quand l'utilisateur se connecte sur la partie asp.net 2.0 du site web la 1ère fois,
je veux vérifier qu'un cookie est present sur son disque dur, faire une vérif via une proc stockée ds une base sql server 2005 etc etc
ensuite j'aimerais qu'il soit authentifié sans plus aucune vérif le temps de la session
Mon global.asax ressemble à ça :
public void FormsAuthentication_OnAuthenticate(object sender, FormsAuthenticationEventArgs args)
{
if ( ! Thread.CurrentPrincipal.Identity.IsAuthenticated )
{
//tout le code pr vérifier que l'utilisateur peut accéder au site web
Thread.CurrentPrincipal = new GenericPrincipal(new GenericIdentity(currentUser.ID.ToString()), currentUser.Roles);
//à ce stade Thread.CurrentPrincipal.Identity.IsAuthenticated est bien à true ms pr une raison
//q je ne comprends pas cette valeur n'est pas conservée durant la session
}
}
Malheureusemt mon test Thread.CurrentPrincipal.Identity.IsAuthenticated retourne toujours false
et le processus total de vérification est donc relancé de nombreuses fois durant la même session.
Voilà mon web.config concernant l'authentification :
<authentication mode="Forms">
<forms loginUrl="/form/Verifid.asp" name="Login"></forms>
</authentication>
Rq: le login est fait sur une page asp et pas dans le projet dotnet .
Est-ce que ça devrait fonctionner...?
Une idée?
Je n'arrive pas à trouver de doc détaillée sur Thread.CurrentPrincipal.Identity.IsAuthenticated ...: comment cette propriété passe-t-elle à true, quel lien avec GenericPrincipal et GenericIdentity, je suis un peu dans le flou par rapport à ce que j'ai pu lire à ce sujet... toute explication éclairée serait vraiment la bienvenue
D'autre part le "FormsAuthentication" fonctionne-t-il correctement alors que l'authentification est faite sur une page asp externe au projet dotnet....
Merci de votre aide,
Partager