FormsAuthentication クラス
アセンブリ: System.Web (system.web.dll 内)


フォーム認証を使用して、Windows 認証を必要としない Web アプリケーションに対してパスワードとユーザーの検証を提供できます。フォーム認証では、ユーザー情報は Membership データベースなどの外部データ ソースやアプリケーションの構成ファイルに格納されます。ユーザーが認証されると、フォーム認証は Cookie または URL に認証チケットを保持し、認証されたユーザーが要求ごとに資格情報を入力しないですむようにします。
フォーム認証は、authentication 構成要素の mode 属性を Forms に設定することにより有効になります。次の例のように、authorization 構成要素を使用して未知のユーザーからの要求をすべて拒否するように設定することによって、アプリケーションに対するすべての要求に、有効なユーザー認証チケットが含まれるように要求できます。
<system.web> <authentication mode="Forms"> <forms loginUrl="login.aspx" /> </authentication> <authorization> <deny user="?" /> </authorization> </system.web>
この例では、アプリケーションに含まれる ASP.NET ページに対するすべての要求に、フォーム認証によって提供される有効なユーザー名が必要になります。ユーザー名が存在しない場合、その要求は構成されている LoginUrl にリダイレクトされます。
FormsAuthentication クラスは、ユーザーを認証するアプリケーション コード内で使用できるメソッドとプロパティを提供します。RedirectToLoginPage メソッドは、アプリケーションにログインするユーザーに対して、構成された LoginUrl にブラウザをリダイレクトします。認証済みユーザーは、RedirectFromLoginPage メソッドによって、初めに要求された、保護されている URL または DefaultUrl にリダイレクトされます。また必要に応じて、フォーム認証チケットを管理できるメソッドもあります。

次のコード例に、フォーム認証用に ASP.NET メンバシップ プロバイダを使用してすべてのユーザーを認証する ASP.NET アプリケーションの Web.config ファイルを示します。
<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>
次のコード例では、フォーム認証と ASP.NET メンバシップを使用する ASP.NET アプリケーションのログイン ページを示しています。
<%@ Page Language="VB" %> <%@ Import Namespace="System.Web.Security" %> <script runat="server"> Public Sub Login_OnClick(sender As Object, args As EventArgs) If (Membership.ValidateUser(UsernameTextbox.Text, PasswordTextbox.Text)) Then FormsAuthentication.RedirectFromLoginPage(UsernameTextbox.Text, NotPublicCheckBox.Checked) Else Msg.Text = "Login failed. Please check your user name and password and try again." End If End Sub </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>
<%@ 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>


System.Web.Security.FormsAuthentication


Windows 98, Windows 2000 SP4, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


- FormsAuthentication クラスのページへのリンク