Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : Problème avec l'authentification ASP.NET par login [ Divers / Autre ] (bidou_01)

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é 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

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :

Comparez les prix Nouvelle version

Photothèque Nouveau !



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
Temps d'éxécution de la page : 0,452 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.