begin process at 2010 03 21 23:37:34
  Trouver un code source :
 
dans
 
Accueil > Forum > 

ASP.NET

 > 

Divers

 > 

Autre

 > 

Problème avec l'authentification ASP.NET par login


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Problème avec l'authentification ASP.NET par login

samedi 8 mars 2008 à 11:43:56 | Problème avec l'authentification ASP.NET par login

bidou_01

Bonjour,

Je viens vers vous car j'ai un problème avec l'authentification ASP.NET sur mon site Internet. Cela fait plusieurs semaines que je cherche, mais toujours le même problème.

Je souhaite à faire en sorte que mes utilisateurs n'est pas à se relogguer constamment, comme sur Codes-Sources, afin de rendre la navigation agréable.

J'utilise l'authentification ASP.NET par login.

Après avoir vérifié l'authenticité des informations d'identification saisie par l'utilisateur, je crée un tocket d'authentification de 4 ans, et un cookie de 4 ans, si l'utilisateur souhaite que le site se souvienne de lui :

if

(Membership.ValidateUser(login_form.UserName, login_form.Password))

{

          FormsAuthenticationTicket ticket = newFormsAuthenticationTicket(1,

                    login_form.UserName,

                    DateTime.Now,

                    DateTime.Now.AddYears(4),

                    login_form.RememberMeSet,

                    "",

                    FormsAuthentication.FormsCookiePath);

          string encryptedTicket = FormsAuthentication.Encrypt(ticket);

          HttpCookie cookie = newHttpCookie(FormsAuthentication.FormsCookieName, encryptedTicket);

          if (ticket.IsPersistent)

                    cookie.Expires = ticket.Expiration;

          Response.Cookies.Add(cookie);

          Response.Redirect(

FormsAuthentication.GetRedirectUrl(login_form.UserName, login_form.RememberMeSet));

}


Ensuite dans le global.asax, je check le cookie et renouvelle le ticket de l'utilisateur, le cas échéant :

public

void FormsAuthentication_OnAuthenticate(object sender, FormsAuthenticationEventArgs args)

{

          HttpCookie cookie = args.Context.Request.Cookies[FormsAuthentication.FormsCookieName];          
          
            
if
(cookie == null) { return; }

                  FormsAuthenticationTicket Ticket = null;

            try

            {

                     Ticket =

FormsAuthentication.Decrypt(cookie.Value);

             }

             catch

            {

                  return;

            }

            if ((null == Ticket) || Ticket.Expired)

            {

                  return;

            }

            FormsAuthenticationTicket Ticket2 = Ticket;

            if (FormsAuthentication.SlidingExpiration)

                  Ticket2 =

FormsAuthentication.RenewTicketIfOld(Ticket);

            args.Context.User =

new System.Security.Principal.GenericPrincipal(newFormsIdentity(Ticket2), newstring[0]);

            if (Ticket2 != Ticket)

            {

                  string hash = FormsAuthentication.Encrypt(Ticket2);

                  if (Ticket2.IsPersistent)

                           cookie.Expires = Ticket2.Expiration;

                  cookie.Value = hash;

                  cookie.HttpOnly =

true;

                  if (FormsAuthentication.CookieDomain != null)

                        cookie.Domain =

FormsAuthentication.CookieDomain;

                  args.Context.Response.Cookies.Add(cookie);

            }

}

Malgrès tout ça, mes utilisateurs doivent se relogguer toutes les 24 heures en moyenne. Sérieux là je n'y comprend vraiment rien, mon code me paraît juste.

Désolé pour la tartine de code, mais là il me faut de l'aide :)

Cordialement,

Bidou_01
 


[ Lien ] | [ Lien ]
lundi 10 mars 2008 à 23:15:28 | Re : Problème avec l'authentification ASP.NET par login

scottmat

Membre Club
bonjour,

dans le fichier web.config tu as créer des balises membership avec les paramètres timeout ?
lundi 10 mars 2008 à 23:24:28 | Re : Problème avec l'authentification ASP.NET par login

bidou_01

Bonsoir,

J'ai des balises membership effectivement, mais pas de paramètre Timeout à ce niveau là. En revanche, j'ai jonglé avec le paramètre Timeout dans les balises :

<authentication mode="Forms">
   <forms loginUrl="login.aspx?auth_required=true" name=".ASPNETAUTH" protection="All"> //retiré le Timeout
   </forms>
  </authentication>

Mais sans succès malheureusement...

Cordialement,

Bidou_01
 



[Mon Blog] - [<>
lundi 10 mars 2008 à 23:45:22 | Re : Problème avec l'authentification ASP.NET par login

scottmat

Membre Club
non non j'ai dit une bétise ! ton timeout été bien placer, regarde cet article de microsoft : [ Lien ] en bas il en parler et au début ils mettent bien la structure que tu avait :

<authentication mode="Forms">
 <forms name=".ASPXFORMSDEMO" loginUrl="logon.aspx"
 protection="All" path="/" timeout="30" />
</authentication>

apparament par default sa serai réglé sur une heure, après à nous de personnaliser.
mardi 11 mars 2008 à 09:24:11 | Re : Problème avec l'authentification ASP.NET par login

bidou_01

Bonjour, effectivement, c'est une heure par défaut. Mais il me semble que c'est ici le Timeout de session que l'on règle. Hors on m'a conseillé de ne pas le régler trop grand, pour eviter de faire péter le pool aspnet de IIS (en cas de trop nombreux visiteurs authentifiés). Mais ce que je ne comprend pas c'est que mon FormsAuthenticationTicket a une validité de 4 ans, donc lors de la lecture du cookie (qui a lui aussi une durée de vie de 4 ans) dans le global.asax, ce même ticket devrait logiquement être renouvellé.

J'avais testé je ne sais combien de fois de changer la valeur du timeout comme tu me l'as indiqué, mais toujours sans succès...

Merci quand même pour tes réponses :)

Cordialement,

Bidou_01
 



[Mon Blog] - [MSLive]
mardi 25 mars 2008 à 23:07:30 | Re : Problème avec l'authentification ASP.NET par login

primactif

Réponse acceptée !
Bonjour

j'ai cherché pedant longtemps aussi l'origine est du à l'hébergeur, si celui-ci est en load balancing ex: aspserveur ou ikoula et autre essaye avec machinekey dans ton web.config.

ceci dit moi j'ai résolu en changeant d'hebergeur.

Bruno POUPON webmaster@primactif.com
HTTP://WWW.PRIMACTIF.COM
mercredi 26 mars 2008 à 00:29:18 | Re : Problème avec l'authentification ASP.NET par login

bidou_01


Bonjour,

Effectivement mon hébergeur a mis en place une solution de Load Balancing il me semble! Je vais me renseigner de ce côté là. Qu'entend tu par "essaye avec machinekey dans ton web.config." ?

Merci pour ta réponse :)

Cordialement,

Bidou_01
 



[Mon Blog] - [MSLive]
mercredi 26 mars 2008 à 13:41:28 | Re : Problème avec l'authentification ASP.NET par login

primactif

Réponse acceptée !

Bonjour il faut générer une clé voir

 

[ Lien ]


Bruno POUPON webmaster@primactif.com
HTTP://WWW.PRIMACTIF.COM

samedi 17 mai 2008 à 19:08:46 | Re : Problème avec l'authentification ASP.NET par login

bidou_01

Je viens juste de trouver du temps pour essayer !! Je te tiens au courant !

Cordialement,

Bidou_01
 



[Mon Blog] - [MSLive]
lundi 19 mai 2008 à 23:06:59 | Re : Problème avec l'authentification ASP.NET par login

bidou_01

Merci beaucoup pour le coup de main ;) ça fonctionne parfaitement !

Cordialement,

Bidou_01
 



[Mon Blog] - [MSLive]


Cette discussion est classée dans : login, cookie, ticket, formsauthentication, if


Répondre à ce message

Sujets en rapport avec ce message

cookies [ par hudon77 ] Comment on fais pour lire un cookie qui n'existe pas.....  je m'explique...Sur la page j'ai un formulaire avec login et password et pour le login je v enterprisemanager MSDE [ par dfeprod ] quelqu'un utilise enterprisemanager du site www.aspenterprisemanager.com ? car je l'ai installé sur mon poste avec msde et impossible de se connecter LOGIN.ASPX [ par LOUTTY ] Je ne comprends pas pourquoi ca ne fonctionne pas en fait il refuse systématiquement de m'authentifier meme avec le bon mot de passelogin.aspx<%@ Impo Cookies et Session [ par hudon77 ] Bonjours a tous !  J'ai 2 petit problemes que je ne comprend pas du tout....Ma premiere a propos des cookes...j'appel la valeur de mon cookie comme su comment passer le login et le mot de passe à un répertoire protégé par activedirectory [ par mohamed_bn ] med belhassenje veut ecrire une procédure en asp.net en c# permettant de copier un fichier dans un répertoire protégé par login et mot de passe crée p enregistrer la valeur d'un cookie dans une variable [ par elpanda ] bonjour je voudrais savoir comment faire pour enregistrer la valeur d'un cookie dans une variable? pour pouvoir réutiliser cette variable après. (je c Login failed for user 'XXXX'. Reason: Not associated with a trusted SQL Server connection. [ par kccja ] [Microsoft][ODBC SQL Server Driver][SQL Server]Login failed for user 'XXXX'. Reason: Not associated with a trusted SQL Server connection. J'ai le mess Plusieurs formulaires sur une même page [ par smoitry ] Bonjour à tous,Petite question de méthodologie sans doute ... Comment faire pour avoir plusieurs formulaires sur une même page ?Je m'explique : pour u Session ASP [ par Ealendil ] Bonsoir, je voudrais pouvoir contrôler l'accès à certaines page du site que je suis entrain d'effectuer à l'aide de variables de sessions et je voulai Codage des caractères ? [ par SuperBouly ] Lorsque je veux afficher le contenu d'un cookie sur une page *.aspx avec qqch du genre :lbInfo.text = request.cookie("monCookie")("mavariable"), certa


Nos sponsors


Sondage...

CalendriCode

Mars 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,562 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales