FormsAuthentication, classe
Assembly : System.Web (dans system.web.dll)
L'authentification par formulaire permet la validation de l'utilisateur et du mot de passe pour les applications Web qui ne requièrent pas l'authentification Windows. Avec l'authentification par formulaire, les informations utilisateur sont stockées dans une source de données externe, telle qu'une base de données Membership, ou dans le fichier de configuration d'une application. Une fois qu'un utilisateur est authentifié, l'authentification par formulaire conserve un ticket d'authentification dans un cookie ou dans l'URL, ce qui évite à l'utilisateur d'avoir à fournir ses informations d'identification à chaque demande.
L'authentification par formulaire est activée en affectant à l'attribut mode de l'élément de configuration authentication la valeur Forms. Vous pouvez exiger que toutes les demandes faites à une application contiennent un ticket d'authentification d'utilisateur valide en utilisant l'élément de configuration authorization pour refuser la demande de tout utilisateur inconnu, comme indiqué dans l'exemple suivant.
<system.web>
<authentication mode="Forms">
<forms loginUrl="login.aspx" />
</authentication>
<authorization>
<deny user="?" />
</authorization>
</system.web>
Dans l'exemple précédent, toute demande de page ASP.NET faisant partie de l'application requiert un nom d'utilisateur valide fourni par l'authentification par formulaire. S'il n'existe aucun nom d'utilisateur, la demande est redirigée vers le LoginUrl configuré.
La classe FormsAuthentication fournit l'accès aux méthodes et aux propriétés que vous pouvez utiliser dans une application authentifiant les utilisateurs. La méthode RedirectToLoginPage redirige un navigateur vers le LoginUrl configuré pour permettre aux utilisateurs de se connecter à une application. La méthode RedirectFromLoginPage redirige un utilisateur authentifié vers l'URL d'origine qu'il a demandée ou vers le DefaultUrl. Certaines méthodes vous permettent également de gérer des tickets d'authentification par formulaire, le cas échéant.
L'exemple de code suivant affiche le fichier Web.config d'une application ASP.NET qui utilise le fournisseur d'appartenances d'ASP.NET pour l'authentification par formulaire et exige que tous les utilisateurs soient authentifiés.
<configuration>
<connectionStrings>
<add name="SqlServices" connectionString="Data Source=MySqlServer;Integrated Security=SSPI;Initial Catalog=aspnetdb;" />
</connectionStrings>
<system.web>
<membership defaultProvider="SqlProvider" userIsOnlineTimeWindow="20">
<providers>
<add name="SqlProvider"
type="System.Web.Security.SqlMembershipProvider"
connectionStringName="SqlServices"
enablePasswordRetrieval="false"
enablePasswordReset="true"
requiresQuestionAndAnswer="true"
passwordFormat="Hashed"
applicationName="/" />
</providers>
</membership>
</system.web>
</configuration>
L'exemple de code suivant affiche la page de connexion d'une application ASP.NET qui utilise l'authentification par formulaire et l'appartenance d'ASP.NET (membership).
<%@ Page Language="C#" %> <%@ Import Namespace="System.Web.Security" %> <script runat="server"> public void Login_OnClick(object sender, EventArgs args) { if (Membership.ValidateUser(UsernameTextbox.Text, PasswordTextbox.Text)) FormsAuthentication.RedirectFromLoginPage(UsernameTextbox.Text, NotPublicCheckBox.Checked); else Msg.Text = "Login failed. Please check your user name and password and try again."; } </script> <html> <head> <title>Login</title> </head> <body> <form runat="server"> <h3>Login</h3> <asp:Label id="Msg" ForeColor="maroon" runat="server" /><P> Username: <asp:Textbox id="UsernameTextbox" runat="server" /><BR> Password: <asp:Textbox id="PasswordTextbox" runat="server" TextMode="Password" /><BR> <asp:Button id="LoginButton" Text="Login" OnClick="Login_OnClick" runat="server" /> <asp:CheckBox id="NotPublicCheckBox" runat="server" /> Check here if this is <u>not</u> a public computer. </form> </body> </html>
- AspNetHostingPermission Utiliser la classe FormsAuthentication dans un environnement hébergé. Valeur de la demande : LinkDemand. Valeur d'autorisation : Minimal.
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.
Référence
Membres FormsAuthenticationSystem.Web.Security, espace de noms