les messages d'erreur de <asp:ChangePassword>
Bonjour à tous,
Je ne touche pas à l'asp.net depuis longtemps, et mes questions seront peut-être toutes bêtes, mais j'ai beau chercher, je n'arrive pas à trouver de réponse.
Dans le webconfig, j'ai un MembershipProvider qui définit la dureté de mes mots de passe (minimum 4 caractères) :
Code:
1 2 3
| minRequiredPasswordLength="4"
minRequiredNonalphanumericCharacters="0"
passwordStrengthRegularExpression="(\w{4,})*" |
Dans ma page ASP de changement de mot de passe, j'utilise le "<asp:ChangePassword>" et redéfinit son template "ChangePasswordTemplate" avec les 3 champs texte (ancien mot de passe, nouveau mot de passe et confirmation du nouveau mot de passe). Extrait (allégé) :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
| <asp:Label id="lblCurrentPassword" ... />
<asp:TextBox id="CurrentPassword" ... />
<asp:RequiredFieldValidator ID="CurrentPasswordRequired" runat="server"
ControlToValidate="CurrentPassword"
ErrorMessage="Ancien mot de passe obligatoire. "
>*</asp:RequiredFieldValidator>
<asp:Label id="lblNewPassword" ... />
<asp:TextBox id="NewPassword" ... />
<asp:RequiredFieldValidator ID="NewPasswordRequired" runat="server"
ControlToValidate="NewPassword"
ErrorMessage="Nouveau mot de passe obligatoire"
>*</asp:RequiredFieldValidator>
<asp:RegularExpressionValidator ID="NewPasswordRegularExpression" runat="server"
ControlToValidate="NewPassword"
ValidationExpression="(\w{4,})*"
ErrorMessage="Nouveau mot de passe pas assez complexe : 4 caractères minimum. "
></asp:RegularExpressionValidator>
<asp:Label id="lblConfirmNewPassword" ... />
<asp:TextBox id="ConfirmNewPassword" ... />
<asp:RequiredFieldValidator ID="ConfirmNewPasswordRequired" runat="server"
ControlToValidate="ConfirmNewPassword"
ErrorMessage="Confirmation du mot de passe obligatoire. "
>*</asp:RequiredFieldValidator>
<asp:CompareValidator ID="NewPasswordCompare" runat="server"
ControlToCompare="NewPassword"
ControlToValidate="ConfirmNewPassword"
Display="Dynamic"
ErrorMessage="Erreur sur la confirmation du mot de passe. "
></asp:CompareValidator>
<asp:Literal ID="FailureText" runat="server" EnableViewState="False"></asp:Literal> |
Mes questions sont les suivantes :
- Pourquoi le champ du nouveau mot de passe ne se base pas automatiquement sur l'expression régulière du MembershipProvider ? Cela nous oblige à la repréciser dans le RegularExpressionValidator
- Si je renseigne un mot de passe erroné (pour l'ancien mot de passe) mais qui respecte les limitations (mettons "1111111a" par exemple), et que je rentre 2 messages identiques et respectant aussi ces règles, deux messages d'erreur s'affichent :
- Mot de passe incorrect ou nouveau mot de passe non valide.
- Longueur minimale du nouveau mot de passe : 4. Caractères non alphanumériques requis : 0.
Pour le premier, c'est normal, mais pourquoi le second s'affiche-t-il ?
- Si j'ai bien compris, les validateurs qu'on précise dans le template sont des validateurs "côté client" (avec leur propre message d'erreur que j'ai écrit, tandis que les deux messages d'erreurs cités ci-dessus sont des messages "côté serveur", c'est bien ça ?
- Y'a-t-il un moyen de modifier ces messages côté serveur, pour qu'ils affichent le texte qu'on veut ?
- Ces messages côté serveur sont affiché grâce au "<asp:Literal ID="FailureText">". y'a-t-il moyen de mettre en forme le contenu affiché dans cette balise (par le biais d'un template par exemple) ?
En espérant avoir été assez clair, je vous remercie par avance pour votre aide.