Cette documentation est archivée et n’est pas conservée.

Login, classe

Remarque : cette classe est nouvelle dans le .NET Framework version 2.0.

Fournit des éléments d'interface utilisateur permettant de se connecter à un site Web.

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

[BindableAttribute(false)] 
public class Login : CompositeControl
/** @attribute BindableAttribute(false) */ 
public class Login extends CompositeControl
BindableAttribute(false) 
public class Login extends CompositeControl

Le contrôle Login est un contrôle composite qui fournit tous les éléments communs de l''interface utilisateur nécessaire pour authentifier un utilisateur sur un site Web. Les trois éléments suivants sont requis pour tous les scénarios de connexion :

  • Un nom d'utilisateur unique pour identifier l'utilisateur.

  • Un mot de passe pour vérifier l'identité de l'utilisateur.

  • Un bouton de connexion pour envoyer les informations de connexion au serveur.

Le contrôle Login fournit également les éléments facultatifs de l'interface utilisateur suivants qui prennent en charge des fonctions supplémentaires :

  • Lien pour un rappel de mot de passe.

  • Une case à cocher de mémorisation du mot de passe pour conserver les informations de connexion d'une session à l'autre.

  • Un lien d'aide pour les utilisateurs qui ont des difficultés pour se connecter.

  • Lien Inscrire un utilisateur qui redirige les utilisateurs vers une page d'inscription.

  • Texte d'instruction qui apparaît sur le formulaire de connexion.

  • Texte d'erreur personnalisé qui s'affiche lorsque l'utilisateur clique sur le bouton de connexion sans remplir les champs de nom d'utilisateur ou de mot de passe.

  • Texte d'erreur personnalisé qui s'affiche si la connexion échoue.

  • Action personnalisée qui se produit lorsque la connexion est réussie.

  • Façon de masquer le contrôle de connexion si l'utilisateur est déjà connecté au site.

Pour obtenir un tableau affichant les contrôles requis et les contrôles facultatifs, consultez la propriété LayoutTemplate.

Remarque de sécuritéRemarque 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).

Le contrôle Login utilise un fournisseur d'appartenances pour obtenir des informations d'identification utilisateur. Sauf indication contraire, le contrôle Login utilise le fournisseur d'appartenances par défaut défini dans le fichier Web.config. Pour spécifier un fournisseur différent, attribuez l'un des noms de fournisseurs d'appartenances définis dans le fichier Web.config de votre application à la propriété MembershipProvider. Pour plus d'informations, consultez Fournisseurs d'appartenances.

Si vous souhaitez utiliser un service d'authentification personnalisé, vous pouvez utiliser la méthode OnAuthenticate pour appeler le service.

Styles et modèles

L'apparence du contrôle Login est complètement personnalisable à l'aide des modèles et paramètres de style. Tous les messages texte d'interface utilisateur sont également personnalisables à l'aide des propriétés de la classe Login. Le texte d'interface par défaut est localisé automatiquement en fonction des paramètres régionaux du serveur.

Si le contrôle Login est personnalisé avec les modèles, la propriété AccessKey et la propriété TabIndex sont ignorées. Dans ce cas, définissez directement la propriété AccessKey et la propriété TabIndex de chaque contrôle enfant de modèle.

Les propriétés du contrôle Login représentées par des zones de texte, telles que UserName et Password, sont accessibles pendant toutes les phases du cycle de vie de la page. Le contrôle reprendra toutes modifications apportées par l'utilisateur final au moyen de l'événement TextChanged déclenché par les zones de texte.

RemarqueRemarque

Si vous incorporez le contrôle Login dans un objet WizardStep, définissez la propriété ActiveStepIndex de manière explicite dans un gestionnaire d'événements Page_Load si l'utilisateur est authentifié. Le contrôle Wizard n'avance pas automatiquement à l'objet WizardStep suivant de ce scénario.

Le tableau suivant répertorie les propriétés de style du contrôle Login et décrit l'élément d'interface que chacune des propriétés de style affecte. Pour obtenir la liste des propriétés auxquelles chaque style s'applique, consultez la documentation des propriétés de style.

Propriété du style

Élément de l'interface utilisateur affecté

BorderPadding

Espace entre le contenu du contrôle et la bordure du contrôle.

CheckBoxStyle

Case de mémorisation du mot de passe.

FailureTextStyle

Texte d'échec de connexion.

InstructionTextStyle

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

LabelStyle

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

TextBoxStyle

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

TitleTextStyle

Texte de titre.

ValidatorTextStyle

Texte affiché à l'attention de l'utilisateur lorsqu'une tentative de connexion échoue en raison d'erreurs de validation.

HyperLinkStyle

Liens vers d'autres pages.

LoginButtonStyle

Bouton de connexion.

Regroupements de validation

Les propriétés UserName et Password ont des contrôles RequiredFieldValidator associés pour empêcher les utilisateurs d'envoyer la page sans fournir les informations requises.

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

Accessibilité

Le balisage rendu par défaut pour ce contrôle peut ne pas se conformer aux normes d'accessibilité telles que les instructions de priorité 1 d'accessibilité du contenu Web (WCAG, Web Content Accessibility Guidelines). Pour plus d'informations sur la prise en charge d'accessibilité pour ce contrôle, consultez Contrôles et accessibilité ASP.NET.

RubriqueEmplacement
Procédure pas à pas : création d'un site Web avec appartenance et connexion utilisateur (Visual Studio)Génération d'applications Web ASP.NET dans Visual Studio
Procédure pas à pas : création d'un site Web avec appartenance et connexion utilisateurGénération d'applications à l'aide de Visual Web Developer
Comment : créer et exécuter l'exemple de fournisseur de profilsGénération d'applications Web ASP.NET dans Visual Studio
Comment : utiliser les fonctionnalités avancées du contrôle de connexion ASP.NETGénération d'applications Web ASP.NET dans Visual Studio
Comment : créer une page de connexion ASP.NETGénération d'applications Web ASP.NET dans Visual Studio
Comment : créer et exécuter l'exemple de fournisseur de profilsGénération d'applications Web ASP.NET dans Visual Studio
Comment : utiliser les fonctionnalités avancées du contrôle de connexion ASP.NETGénération d'applications Web ASP.NET dans Visual Studio
Comment : créer une page de connexion ASP.NETGénération d'applications Web ASP.NET
Comment : créer et exécuter l'exemple de fournisseur de profilsGénération d'applications Web ASP.NET
Comment : utiliser les fonctionnalités avancées du contrôle de connexion ASP.NETGénération d'applications Web ASP.NET
Comment : créer une page de connexion ASP.NETGénération d'applications Web ASP.NET dans Visual Studio

L'exemple de code suivant utilise un contrôle Login pour fournir une interface utilisateur pour se connecter à un site Web.

<%@ Page Language="C#" %>
<%@ Import Namespace="System.ComponentModel" %>

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

<SCRIPT runat="server">
bool IsValidEmail(string strIn)
{
    // Return true if strIn is in valid e-mail format.
    return Regex.IsMatch(strIn, @"^([\w-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([\w-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$"); 
}

void OnLoggingIn(object sender, System.Web.UI.WebControls.LoginCancelEventArgs e)
{
    if (!IsValidEmail(Login1.UserName))
    {
        Login1.InstructionText = "Enter a valid e-mail address.";
        Login1.InstructionTextStyle.ForeColor = System.Drawing.Color.RosyBrown;
        e.Cancel = true;
    }
    else
    {
        Login1.InstructionText = String.Empty;
    }
}

void OnLoginError(object sender, EventArgs e)
{
    Login1.HelpPageText = "Help with logging in...";
    Login1.PasswordRecoveryText = "Forgot your password?";
}
</SCRIPT>

<HTML>
    <BODY>
        <FORM runat="server">
            <asp:Login id="Login1" runat="server" 
                BorderStyle="Solid" 
                BackColor="#F7F7DE" 
                BorderWidth="1px"
                BorderColor="#CCCC99" 
                Font-Size="10pt" 
                Font-Names="Verdana" 
                CreateUserText="Create a new user..."
                CreateUserUrl="newUser.aspx" 
                HelpPageUrl="help.aspx"
                PasswordRecoveryUrl="getPass.aspx" 
                UserNameLabelText="E-mail address:" 
                OnLoggingIn=OnLoggingIn
                OnLoginError=OnLoginError >
                <TitleTextStyle Font-Bold="True" 
                    ForeColor="#FFFFFF" 
                    BackColor="#6B696B">
                </TitleTextStyle>
            </asp:Login>

        </FORM>
    </BODY>
</HTML>

L'exemple de code suivant illustre comment étendre le contrôle Login. Le contrôle CustomLogin inclut un contrôle DropDownList qui permet aux utilisateurs de choisir avec quel fournisseur d'appartenances ils sont authentifiés. (Ces fournisseurs sont configurés dans Web.config.) Dans la méthode OnLoggingIn, la propriété MembershipProvider a la valeur sélectionnée du contrôle DropDownList.

using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;

namespace Samples.AspNet.Controls
{
    public sealed class CustomLogin : Login
    {
        public CustomLogin() { }
        
        protected override void OnLoggingIn(LoginCancelEventArgs e)
        {
            // Set the Membership provider for the Login control from a DropDownList.
            DropDownList list = (DropDownList)this.FindControl("domain");
            this.MembershipProvider = list.SelectedValue;
            base.OnLoggingIn(e);
        }
        
        protected override void CreateChildControls()
        {
            LayoutTemplate = new MyTemplate();
            base.CreateChildControls();
        }
    }
    
    // A Template that contains the child controls.
    public class MyTemplate : ITemplate
    {
        void ITemplate.InstantiateIn(Control container)
        {
            // A TextBox for the user name.
            TextBox username = new TextBox();
            username.ID = "username";
            
            // A TextBox for the password.
            TextBox password = new TextBox();
            password.ID = "password";
            
            // A CheckBox to remember the user on subsequent visits.
            CheckBox remember = new CheckBox();
            remember.ID = "RememberMe";
            remember.Text = "Don't forget me!";
            
            // Failure Text.
            Literal failure = new Literal();
            failure.ID = "FailureText";
            
            // A DropDownList to choose the Membership provider.
            DropDownList domain = new DropDownList();
            domain.ID = "Domain";
            domain.Items.Add(new ListItem("SqlMembers"));
            domain.Items.Add(new ListItem("SqlMembers2"));
            
            // A Button to log in.
            Button submit = new Button();
            submit.CommandName = "login";
            submit.Text = "LOGIN";

            container.Controls.Add(new LiteralControl("UserName:"));
            container.Controls.Add(username);
            container.Controls.Add(new LiteralControl("<br>Password:"));
            container.Controls.Add(password);
            container.Controls.Add(new LiteralControl("<br>"));
            container.Controls.Add(remember);
            container.Controls.Add(new LiteralControl("<br>Domain:"));
            container.Controls.Add(domain);
            container.Controls.Add(new LiteralControl("<br>"));
            container.Controls.Add(failure);
            container.Controls.Add(new LiteralControl("<br>"));
            container.Controls.Add(submit);
        }
    }    
}

  • AspNetHostingPermission  pour exécuter le contrôle Login dans un environnement hébergé. Énumération associée : Minimal

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

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

Le .NET Framework ne prend pas en charge toutes les versions de chaque plate-forme. Pour obtenir la liste des versions prises en charge, consultez Configuration requise.

.NET Framework

Prise en charge dans : 2.0
Afficher: