Vous êtes ici Forums
  |  Connexion
 Forums
HomeHomeForums DNNForums DNNUtilisation - f...Utilisation - f...Vérification existence de lVérification existence de l'adresse e-mail
Précédente
 
Suivante
Nouveau message
20/06/2008 15:59
 

Bonjour,

Pour un site DNN v2.1, nous avions adapté le noyau de DNN afin de permettre de valider "vraiment" une adresse email remplie dans le formulaire d'inscription (pas seulement le bon format avec une expression régulière) : à chaque fois qu'un internaute modifie son email dans le formulaire d'inscription, le module de profil utilisateur customisé lui envoie une demande de validation à sa nouvelle adresse email, l'ancienne adresse étant conservée dans la base DNN tant que l'utilisateur ne clique pas sur le lien du message reçu sur sa nouvelle adresse électronique. Ceci évite de changer son email et par exemple avec une erreur de frappe, saisir une adresse erronée voire l'adresse d'un autre internaute qui obtiendrait ainsi d'éventuelles informations confidentielles (par exemple, si on active le rappel Mot de passe perdu sur la page de Login, le mot de passe étant alors renvoyé à l'adresse email saisi dans le formulaire d'inscription / mise à jour de coordonnées).

Nous voudrions avoir la même fonctionnalité avec DNN v4.8. Le souci est que le noyau de DNN a fortement évolué, en bien, et le formulaire d'inscription devenu très puissant est devenu assez complexe pour le customiser facilement.

Quelqu'un aurait-il une solution "légère" intéressante ?

 
Nouveau message
06/07/2008 16:46
 

Bonjour,

Vers quelle version avez-vous migré ? Car Dotnetnuke propose aujourd'hui plusieurs modes d'inscription paramètrables dans le menu Site > Configuration, dont un mode Vérifié, qui envoie un code de validation à l'adresse email spécifiée.

Inscription

Sébastien

 
Nouveau message
07/07/2008 13:14
 

En DNN 4.7 et 4.8, on a bien cette option, le souci est que notre société gère un site DNN où les utilisateurs ne peuvent s'inscrire eux-mêmes (processus d'adhésion qui n'est pas le formulaire d'inscription de DNN), une fois inscrit par le back-office, leur code identifiant et mot de passe leur est envoyé. Donc c'est bien l'option "Aucune" que nous avons sélectionné dans le Mode d'inscription.

La vérification email n'est donc pas pour nous lors de l'inscription, mais lors du changement d'adresse email pour l'internaute possédant déjà son compte DNN ; auquel cas, il demeure l'aspect erreur de saisie pouvant par hasard tomber sur l'email d'une autre personne.

Cdt

J-Serge

 
Nouveau message
07/07/2008 15:24
 

Alors il faudrait modifier le controle utilisateur pour que chaque modification d'adresse email se solde par une confirmation via le-dit code de sécurité. Le process pourrait être le suivant :
- L'utilisateur édite son adresse email depuis le contrôle habituel.
- Un EnventHandler sur la textBox Email permet d'afficher un message informant l'utilisateur qu'un code de vérification lui a été envoyé, puis une seconde textBox apparaît. Un contrôle RequiredFieldValidator se charge de stopper le processus de sauvegarde pendant ce temps.
- L'utilisateur ouvre le message, saisi le code dans la textBox, vérification de routine, et la sauvegarde est de nouveau active.
Pour ne pas surcharger l'interface, l'emploi d'évènements de type OnKeyPress sur la textBox du code de vérification pourra permettre de valider automatiquement le code saisi, et d'afficher un petit logo en fonction du résultat retourné.

Plutôt que de modifier le module User existant, il sera preferrable de le dupliquer afin de ne pas provoquer de collisions lors d'une future mise à jour.

Sébastien

 
Nouveau message
08/07/2008 13:42
 

Bonjour,

Est-il possible de mettre en place un 2ème champ de saisi d'email au niveau des informations de compte d'un utilisateur de manière à ce l'email soit davantage "vérifié" ?

Si oui, peut-on ajouter du javascript dessus (qui, à l'événement LostFocus, remettrait à zéro le champ de saisi et annulerait la tentative d'enregistrement dans le cas où les valeurs des champs de textes email seraient différentes) ?

 
Nouveau message
08/07/2008 14:54
 

En bidouillant un peu j'ai réussi à créer un nouveau de champ de saisi Email2. Dans la classe UserInfo (Library\Components\Users\UserInfo.vb) j'ai rajouté une variable d'instance _Email2 et la property associée.

Y-a-t-il une solution simple pour ajouter du javascript ?

 
Nouveau message
08/07/2008 15:13
 

if (!IsPostBack)
                {          
                    if( ClientAPI.BrowserSupportsFunctionality(ClientAPI.ClientFunctionality.DHTML)) //  à personnaliser
                    {
                        if (!ClientAPI.IsClientScriptBlockRegistered(this.Page, "Mon.js"))
//  à personnaliser
                        {
                            ClientAPI.RegisterClientScriptBlock(this.Page, "Mon.js", ""); 
//  à personnaliser
                        }
                    }

Ici on utilise l'API Dnn pour ajouter le script dans le Head de la page. Mais on peut le faire aussi avec ASP.Net : http://msdn2.microsoft.com/en-us/library/aa479390.aspx

Tu remarqueras également que mon exemple est en C#, mais c'est tout ce que j'avais sous la main ;) Idéalement tu enregistres le script lors d'une méthode appelée au PageLoad ou PagePreRender.

Ajoute également un RequiredFieldValidator (typé ou non), pour éviter le Save impromptu.

seb

 
Nouveau message
08/07/2008 15:24
 

Merci mais ma question était davantage au niveau de l'architecture de DNN. En gros, quel(s) user control dois-je modifier pour ajouter du JS sur le champ Email2 (et le RequiredFieldValidator) ?

Merci d'avance.

 
Nouveau message
08/07/2008 16:03
 

Je te déconseille de modifier UserInfo, et en général, de modifier le Core de Dotnetnuke. Tout simplement parcequ'en faisant cela, tu casses le processus de mise à jour standard (à chaque mise à jour tu devras recompiler le noyau).

Je te conseille de dupliquer l'inscription du module User, pour en faire un module qui siège dans DesktopModules, et t'apporter les bénéfices d'un module d'inscription/édition personnalisé. Globalement tu ne modifies presque rien au module si ce n'est le manifeste XML qui te permettra de spécifier un nouveau répertoire et un nouveau FriendlyName et l'espace de nom dans lequel tu placeras ton code perso, et tu dupliques le contrôle admin/users/user.ascx et son vb, pour intervenir au moment du Bind du PropertyEditorControl "UserEditor" afin de placer tes contrôles perso. Puisque tu ne modifies que ce contrôle, tu peux déclarer ton script JS au page_load de ce dernier.

seb

 
Précédente
 
Suivante
HomeHomeForums DNNForums DNNUtilisation - f...Utilisation - f...Vérification existence de lVérification existence de l'adresse e-mail