Cette page vous a-t-elle été utile ?
Votre avis sur ce contenu est important. N'hésitez pas à nous faire part de vos commentaires.
Vous avez d'autres commentaires ?
1500 caractères restants
Exporter (0) Imprimer
Développer tout

ChangePassword, classe

Mise à jour : novembre 2007

Fournit une interface utilisateur qui permet aux utilisateurs de modifier le mot de passe qu'ils utilisent pour se connecter au site Web.

Espace de noms :  System.Web.UI.WebControls
Assembly :  System.Web (dans System.Web.dll)

[BindableAttribute(false)]
[AspNetHostingPermissionAttribute(SecurityAction.InheritanceDemand, Level = AspNetHostingPermissionLevel.Minimal)]
[AspNetHostingPermissionAttribute(SecurityAction.LinkDemand, Level = AspNetHostingPermissionLevel.Minimal)]
public class ChangePassword : CompositeControl, 
	INamingContainer
/** @attribute BindableAttribute(false) */
/** @attribute AspNetHostingPermissionAttribute(SecurityAction.InheritanceDemand, Level = AspNetHostingPermissionLevel.Minimal) */
/** @attribute AspNetHostingPermissionAttribute(SecurityAction.LinkDemand, Level = AspNetHostingPermissionLevel.Minimal) */
public class ChangePassword extends CompositeControl implements INamingContainer
public class ChangePassword extends CompositeControl implements INamingContainer
<asp:ChangePassword />

Utilisez le contrôle ChangePassword sur une page pour permettre aux utilisateurs de votre site Web de modifier le mot de passe qu'ils utilisent pour se connecter à votre site Web.

Remarque :

Si vous n'êtes pas familiarisé avec le jeu de contrôles de connexion disponibles dans ASP.NET, consultez Vue d'ensemble des contrôles de connexion ASP.NET avant de continuer. Pour obtenir la liste des autres rubriques relatives aux contrôles de connexion et à l'appartenance (membership), consultez Gestion des utilisateurs à l'aide de l'appartenance.

Note de sécurité :

La transmission de mots de passe sur le protocole HTTP constitue une menace potentielle pour la sécurité. Les transmissions HTTP peuvent être affichées ou mises en danger par des utilisateurs malveillants. Pour améliorer la sécurité lors de l'utilisation de contrôles d'ouverture de session, vous devez utiliser le protocole HTTPS avec le chiffrement SSL (Secure Sockets Layer) pour garantir que le mot de passe de l'utilisateur ne puisse pas être lu pendant la publication. Pour plus d'informations, consultez la page Sécurisation des contrôles de connexion.

Le contrôle ChangePassword utilise le fournisseur d'appartenances défini dans la propriété MembershipProvider pour modifier le mot de passe stocké dans le magasin de données du fournisseur d'appartenances du site Web. Si vous n'assignez pas de fournisseur d'appartenances, le contrôle ChangePassword utilise le fournisseur d'appartenances par défaut défini dans la section Membership du fichier Web.config. Le contrôle ChangePassword permet aux utilisateurs d'exécuter les actions suivantes :

  • Modifier leur mot de passe s'ils sont connectés.

  • Modifier leur mot de passe s'ils ne sont pas connectés, tant que la page qui contient le contrôle ChangePassword autorise l'accès anonyme et que la propriété DisplayUserName a la valeur true.

  • Modifier le mot de passe d'un compte d'utilisateur, même s'ils sont connectés en tant qu'autre utilisateur. Pour cela, la propriété DisplayUserName doit avoir la valeur true.

Affecter à la propriété DisplayUserName la valeur true permet d'afficher la zone de texte Nom d'utilisateur où l'utilisateur pourra entrer un nom d'utilisateur. Si l'utilisateur est connecté, le contrôle UserName est rempli avec le nom de l'utilisateur connecté. Une fois que le mot de passe correspondant au nom d'utilisateur donné est modifié, l'utilisateur est connecté au compte associé au mot de passe modifié, même s'il ne s'était pas connecté à ce compte auparavant.

Note de sécurité :

Accepter des entrées d'utilisateur constitue une menace potentielle pour la sécurité. Les utilisateurs mal intentionnés peuvent envoyer des données afin de détecter des lacunes ou d'exécuter des programmes qui essaient des mots de passe générés. Pour renforcer la sécurité lorsque vous travaillez avec une entrée d'utilisateur, vous devez utiliser les fonctionnalités de validation de votre contrôle et sécuriser tout fournisseur de données configuré pour votre contrôle. Pour plus d'informations, consultez Sécurisation des contrôles de connexion, Méthodes de sécurité de base pour les applications Web et Sécurisation de l'appartenance (membership).

Envoi de messages électroniques

Le contrôle ChangePassword peut être configuré pour utiliser des services de messagerie électronique permettant d'envoyer le nouveau mot de passe à l'utilisateur. Pour envoyer des messages électroniques aux utilisateurs depuis n'importe quel contrôle serveur Web ASP.NET, vous devez configurer un serveur de messagerie dans le fichier Web.config de votre application. Pour plus d'informations, consultez la page Comment : installer et configurer des serveurs virtuels SMTP dans IIS 6.0.

Les messages électroniques sont configurés à l'aide de la classe MailDefinition. Vous devez définir la propriété BodyFileName de façon à obliger ASP.NET à envoyer un message électronique.

Note de sécurité :

L'envoi de noms de comptes d'utilisateur ou de mots de passe dans une messagerie électronique constitue une menace potentielle pour la sécurité. Les messages électroniques sont envoyés en général sous forme de texte brut et peuvent être lus par des applications réseau particulières en quête d'intrusion. Pour améliorer la sécurité, utilisez les atténuations décrites dans Sécurisation des contrôles de connexion.

Remarque :

Il n'est pas possible de garantir qu'un utilisateur recevra ou consultera un message électronique. Pour vérifier si un utilisateur a reçu une notification par courrier électronique, envisagez de fournir un lien de confirmation dans le message électronique qui permet à l'utilisateur de confirmer la réception de la notification.

Vues

Le contrôle ChangePassword a deux états ou vues :

  • La vue Modifier le mot de passe   Demande le mot de passe actuel et requiert que l'utilisateur entre deux fois le nouveau mot de passe pour le confirmer. Si vous autorisez des utilisateurs qui n'ont pas ouvert de session à modifier leur mot de passe, affectez true à la propriété DisplayUserName pour afficher le contrôle UserName dans la vue Modifier le mot de passe. Le contrôle UserName permet aux utilisateurs de fournir leur nom d'utilisateur inscrit. S'il une erreur se produit lors de la modification du mot de passe, un message d'erreur s'affiche dans la vue Modifier le mot de passe et permet à l'utilisateur de réessayer.

  • La vue Opération réussie   Confirme que le mot de passe a été modifié.

Remarque importante :

Les fonctions ChangePassword, Continue et Cancel sont attachées à tout bouton qui présente le nom de commande approprié, indépendamment de la vue dans laquelle il se trouve. Par exemple, un bouton doté de la fonction commandname=changepassword et affiché dans la vue de la réussite tentera de modifier le mot de passe et lèvera une exception.

Styles et modèles

Vous pouvez utiliser un ensemble complet de propriétés de style pour personnaliser l'apparence du contrôle ChangePassword. Vous pouvez également appliquer des modèles personnalisés aux deux vues si vous devez contrôler entièrement l'apparence du contrôle ChangePassword. Si vous définissez un modèle pour une vue, les propriétés ControlStyle sont appliquées. Pour obtenir la liste des contrôles que vous devez définir dans les modèles d'affichage, consultez les propriétés ChangePasswordTemplate et SuccessTemplate. Le contrôle ChangePassword examine le contenu du modèle et lève une exception si un contrôle requis n'est pas trouvé, n'est pas nommé correctement ou n'est pas du type approprié. Par exemple, si vous utilisez le contenu du modèle et si vous affectez true à la propriété DisplayUserName, le ChangePassword lève une exception si TextBox ou un autre contrôle IEditableTextControl correspondant au nom d'utilisateur n'est pas trouvé.

Le tableau suivant répertorie les propriétés de style du contrôle ChangePassword et décrit l'élément d'interface qu'elles affectent. Pour obtenir la liste des propriétés auxquelles chaque style s'applique, consultez la propriété de style individuelle.

propriété de style ChangePassword

élément d'interface

CancelButtonStyle

Bouton Annuler sur la vue Modifier le mot de passe.

ChangePasswordButtonStyle

Bouton Modifier le mot de passe sur la vue Modifier le mot de passe

ContinueButtonStyle

Bouton Continuer sur la vue Opération réussie.

FailureTextStyle

Texte d'erreur affiché à l'attention de l'utilisateur.

HyperLinkStyle

Liens hypertexte vers d'autres pages.

InstructionTextStyle

Texte d'instructions sur la page qui décrit comment utiliser le contrôle ChangePassword.

LabelStyle

Étiquettes correspondant à tous les champs d'entrée, tels que les zones de texte.

PasswordHintStyle

Indications permettant de fournir un mot de passe acceptable pour le site Web.

SuccessTextStyle

Texte affiché à l'attention de l'utilisateur lorsque le mot de passe a été modifié avec succès.

TextBoxStyle

Champs d'entrée pour la saisie de texte.

TitleTextStyle

Titres des vues Modifier le mot de passe et Opération réussie.

Regroupements de validation

Le contrôle ChangePassword utilise un groupe de validation afin que d'autres champs situés sur la même page que le contrôle ChangePassword puissent être validés séparément. Par défaut, la propriété ID du contrôle ChangePassword est utilisée comme nom du groupe de validation. Par exemple, un contrôle ChangePassword dont l'ID est "ChangePassword1" utilise également ChangePassword1 comme nom de groupe de validation. Pour définir le groupe de validation dont le contrôle ChangePassword fait partie, vous devez créer un modèle avec le contrôle, puis modifier le nom du groupe de validation.

Pour afficher un message d'erreur lorsqu'un utilisateur laisse un contrôle TextBox vide, ajoutez un contrôle ValidationSummary à la page. Affectez à la propriété ValidationGroup du contrôle ValidationSummary la valeur de la propriété ID du contrôle ChangePassword.

Accessibilité

Si le contrôle ChangePassword n'est pas personnalisé avec les modèles, la propriété AccessKey du contrôle ChangePassword s'applique à la première zone de texte dans le contrôle. Si le contrôle ChangePassword est personnalisé avec les modèles, la propriété AccessKey est ignorée. Dans ce cas, définissez directement la propriété AccessKey de chaque contrôle enfant de modèle. La propriété TabIndex est rendue sur tous les contrôles TextBox dans le contrôle ChangePassword. Si le contrôle ChangePassword est personnalisé avec les modèles, la propriété TabIndex est ignorée.

Le balisage rendu par défaut pour ce contrôle peut ne pas se conformer aux normes d'accessibilité telles que les instructions WCAG (Web Content Accessibility Guidelines) 1.0 de priorité 1. Par exemple, utiliser CancelDestinationPageUrl ou SuccessPageUrl entraîne un rafraîchissement de page contraire à la configuration d'accessibilité requise pour ne pas actualiser une lors d'un clic sur un bouton ou un lien placé sur celle-ci. Pour plus d'informations sur la prise en charge d'accessibilité pour ce contrôle, consultez Contrôles et accessibilité ASP.NET.

Accès aux contrôles pendant les phases Page_Load et Page_Init

Les propriétés du contrôle ChangePassword représentées par des zones de texte, telles que UserName et CurrentPassword, sont accessibles pendant toutes les phases du cycle de vie de la page. Lors des phases Page_Init et Page_Load en particulier, ces propriétés ont la même valeur que lorsque le contrôle ChangePassword a été rendu. Si l'utilisateur modifie la valeur de la propriété UserName en modifiant la zone de texte UserName, la nouvelle valeur est disponible lorsque l'événement modifié est déclenché, c'est-à-dire après la phase Page_Load. Par conséquent, si vous définissez la valeur de la propriété UserName lors de la phase Page_Init ou Page_Load et si vous fournissez un gestionnaire personnalisé pour un événement ChangePassword, toute modification apportée par l'utilisateur à la zone de texte UserName substitue la valeur définie lors de la phase Page_Init ou Page_Load.

L'exemple de code suivant montre comment définir la propriété NewPasswordRegularExpression de façon à créer une expression régulière qui vérifie les mots de passe et garantit qu'ils répondent aux critères suivants :

  • Comportent plus de six caractères.

  • Comporter au moins un chiffre.

  • Comportent au moins un caractère spécial (non alphanumérique).

Les configurations de mot de passe requises contenues dans la propriété PasswordHintText s'affichent à l'attention de l'utilisateur.

Si le mot de passe entré par l'utilisateur ne répond pas aux conditions requises de la propriété NewPasswordRegularExpression, le texte contenu dans la propriété NewPasswordRegularExpressionErrorMessage est affiché à l'attention de l'utilisateur. Si un nouveau mot de passe n'est pas entré, le texte contenu dans la propriété NewPasswordRequiredErrorMessage est affiché à l'attention de l'utilisateur.

Remarque :

Le nouveau mot de passe doit satisfaire les conditions minimales requises définies par le fournisseur d'appartenances dans les propriétés MinRequiredPasswordLength, MinRequiredNonAlphanumericCharacters et PasswordStrengthRegularExpression. Si le mot de passe ne satisfait pas les conditions requises, l'événement ChangePasswordError est déclenché.

<%@ page language="C#"%>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">

</script>

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
  <title>Change Password with Validation</title>
</head>
<body>
  <form id="form1" runat="server">
  <div>
  <asp:changepassword id="ChangePassword1" runat="server"
  PasswordHintText = 
    "Please enter a password at least 7 characters long, 
    containing a number and one special character."
  NewPasswordRegularExpression =
    '@\"(?=.{7,})(?=(.*\d){1,})(?=(.*\W){1,})' 
  NewPasswordRegularExpressionErrorMessage =
    "Error: Your password must be at least 7 characters long, 
    and contain at least one number and one special character." >
  </asp:changepassword>
  </div>
  </form>
</body>
</html>


Tous les membres static (Shared en Visual Basic) publics de ce type sont thread-safe. Il n'est pas garanti que les membres d'instance soient thread-safe.

Windows Vista, Windows XP SP2, Windows XP Media Center Edition, Windows XP Professionnel Édition x64, Windows XP Starter Edition, Windows Server 2003, Windows Server 2000 SP4, Windows Millennium Edition, Windows 98

Le .NET Framework et le .NET Compact Framework ne prennent pas en charge toutes les versions de chaque plateforme. Pour obtenir la liste des versions prises en charge, consultez Configuration requise du .NET Framework.

.NET Framework

Pris en charge dans : 3.5, 3.0, 2.0

Ajouts de la communauté

AJOUTER
Afficher:
© 2015 Microsoft