Partager via


Utilitaires d'authentification par formulaire

Mise à jour : novembre 2007

Pour gérer l'authentification par formulaire, vous pouvez utiliser des méthodes statiques de la classe FormsAuthentication. Le tableau suivant décrit ces méthodes.

Méthode

Description

Authenticate

Essaie de valider les informations d'identification à partir du magasin des informations d'identification configurées, compte tenu des informations d'identification fournies.

Decrypt

À partir d'un ticket d'authentification chiffré obtenu à partir d'un cookie HTTP, retourne une instance de la classe FormsAuthenticationTicket.

Encrypt

À partir d'un FormsAuthenticationTicket, génère une chaîne contenant un ticket d'authentification chiffré qui peut être utilisé dans un cookie HTTP.

GetAuthCookie

Récupère un cookie d'authentification chiffré en tant qu'instance de HttpCookie. Le cookie n'est pas ajouté à la collection Cookies.

GetRedirectUrl

Retourne l'URL de redirection pour la demande qui a provoqué la redirection vers la page de connexion.

HashPasswordForStoringInConfigFile

À partir d'un mot de passe et d'une chaîne identifiant le type de hachage, génère un mot de passe de hachage approprié au stockage dans un fichier de configuration.

Initialize

Initialise la classe FormsAuthentication en lisant les paramètres de configuration et en obtenant les valeurs de cookie et les valeurs de chiffrement pour l'application active.

RedirectFromLoginPage

Redirige un utilisateur authentifié vers l'URL initialement demandée.

RenewTicketIfOld

Met à jour l'expiration décalée d'un FormsAuthenticationTicket.

SetAuthCookie

Crée un ticket d'authentification et l'attache à la collection de cookies de la réponse sortante.

SignOut

Supprime le ticket d'authentification en attribuant au cookie d'authentification ou au texte de l'URL une valeur vide. Supprime les cookies persistants et les cookies propres à chaque session.

Remarque importante :
Bien que la méthode SignOut supprime le ticket de la session de navigateur authentifiée, votre application reste vulnérable à une attaque par reconstitution provenant d'une source indésirable qui a « reniflé » un ticket d'authentification. Pour savoir comment limiter les risques d'une attaque par reconstitution avec l'authentification par formulaire, consultez SignOut.

Le tableau suivant répertorie des propriétés utiles pour la gestion des tickets d'authentification par formulaire.

Propriété

Description

FormsCookieName

Obtient le nom du cookie pour l'application en cours.

FormsCookiePath

Obtient le chemin d'accès du cookie pour l'application en cours.

CookiesSupported

Obtient une valeur qui indique si l'application est configurée pour prendre en charge l'authentification par formulaire sans cookie.

CookieMode

Obtient une valeur qui indique si l'application est configurée pour l'authentification par formulaire sans cookie.

CookieDomain

Obtient la valeur du domaine du cookie d'authentification par formulaire.

DefaultUrl

Obtient l'URL vers laquelle l'authentification par formulaire redirige l'utilisateur si aucune URL de redirection n'est spécifiée.

LoginUrl

Obtient l'URL de la page de connexion vers laquelle l'authentification par formulaire redirige l'utilisateur.

RequireSSL

Obtient une valeur qui indique si les cookies doivent être transmis à l'aide de SSL (Secure Sockets Layer).

SlidingExpiration

Obtient une valeur indiquant si l'expiration décalée est activée.

EnableCrossAppRedirects

Obtient une valeur indiquant si les utilisateurs authentifiés peuvent être redirigés vers des URL d'autres applications Web lorsque le ticket d'authentification par formulaire n'est pas stocké dans un cookie.

Vous pouvez utiliser les méthodes de la classe FormsAuthentication pour personnaliser la procédure d'authentification par formulaire. Vous pouvez également les utiliser dans le gestionnaire de la page de connexion pour éviter la tâche de génération de la redirection. L'exemple de code suivant illustre une page Web ASP.NET qui authentifie l'utilisateur et le redirige vers la page demandée.

<html>
<head>
<script language="VB" runat=server>
    Sub SubmitBtn_Click(Source As Object, e As EventArgs)
        ' Try to authenticate credentials supplied by user.
        If FormsAuthentication.Authenticate _
                (UserName.Value, UserPassword.Value) Then
            Dim ticket As New FormsAuthenticationTicket _
                (UserName.Value, False, 5000)
            FormsAuthentication.RedirectFromLoginPage _
                (UserName.Value, Persist.Checked)
        End If
    End Sub
</script>
</head>

<body>
<form method=post runat=server>
    <table>
        <tr>
            <td>Name:</td>
            <td><input type="text" id="UserName" runat=server/>
        </tr>
        <tr>
            <td>Password:</td>
            <td><input type="password" id="UserPassword" runat=server/>
            </td>
        </tr>
    </table>
    <input type="checkbox" id="Persist" runat=server/>
    <!-- Use persistent cookie -->
    <br>
    <input type="submit" OnServerClick="SubmitBtn_Click" runat=server/>
</form>
</body>
</html>
<html>
<head>
<script language="C#" runat=server>
    void SubmitBtn_Click(Object Source, EventArgs e)
    {
        // Try to authenticate credentials supplied by user.
        if (FormsAuthentication.Authenticate(UserName.Value, 
                UserPassword.Value))
        {
            FormsAuthenticationTicket ticket = new 
                FormsAuthenticationTicket(UserName.Value, false, 5000);
                  
            FormsAuthentication.RedirectFromLoginPage(UserName.Value,
                Persist.Checked);
        }
    }
</script>
</head>

<body>

<form method=post runat=server>
    <table>
        <tr>
            <td>Name:</td>
            <td><input type="text" id="UserName" runat=server/></td>
        </tr>
        <tr>
            <td>Password:</td>
            <td><input type="password" id="UserPassword" runat=server/>
            </td>
        </tr>
    </table>
    <input type="checkbox" id="Persist" runat=server/>
    <!-- Use persistent cookie. -->
    <br>
    <input type="submit" OnServerClick="SubmitBtn_Click" runat=server/>
</form>
</body>
</html>

Les applications qui ont besoin d'un contrôle précis sur les propriétés de cookie HTTP peuvent générer le ticket et exécuter la redirection dans du code personnalisé. Dans ce cas, vous devez utiliser les méthodes de chiffrement de la classe FormsAuthentication pour chiffrer le ticket d'authentification.

Voir aussi

Référence

FormsAuthentication

FormsAuthenticationTicket

HttpCookie

Autres ressources

Sécurité des applications Web ASP.NET

Fournisseur d'authentification par formulaire