次の方法で共有


FormsAuthentication クラス

定義

Web アプリケーションのフォーム認証サービスを管理します。 このクラスは継承できません。

public ref class FormsAuthentication sealed
public sealed class FormsAuthentication
type FormsAuthentication = class
Public NotInheritable Class FormsAuthentication
継承
FormsAuthentication

次のコード例は、フォーム認証に 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 アプリケーションのログイン ページを示しています。

大事な

この例には、潜在的なセキュリティ上の脅威であるユーザー入力を受け入れるテキスト ボックスが含まれています。 既定では、ASP.NET Web ページでは、ユーザー入力にスクリプトや HTML 要素が含まれていないことが検証されます。 詳細については、「スクリプトの悪用の概要」を参照してください。

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

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<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 xmlns="http://www.w3.org/1999/xhtml" >
<head>
  <title>Login</title>
</head>
<body>

<form id="form1" runat="server">
  <h3>Login</h3>

  <asp:Label id="Msg" ForeColor="maroon" runat="server" /><br />

  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 <span style="text-decoration:underline">not</span> a public computer.

</form>

</body>
</html>
<%@ Page Language="VB" %>
<%@ Import Namespace="System.Web.Security" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<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 xmlns="http://www.w3.org/1999/xhtml" >
<head>
  <title>Login</title>
</head>
<body>

<form id="form1" runat="server">
  <h3>Login</h3>

  <asp:Label id="Msg" ForeColor="maroon" runat="server" /><br />

  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 <span style="text-decoration:underline">not</span> a public computer.

</form>

</body>
</html>

注釈

フォーム認証を使用すると、Windows 認証を必要としない Web アプリケーションのユーザーとパスワードの検証が可能になります。 フォーム認証では、ユーザー情報は外部データ ソース (Membership データベースなど) またはアプリケーションの構成ファイルに格納されます。 ユーザーが認証されると、フォーム認証では認証チケットが Cookie または URL に保持されるため、認証されたユーザーは各要求で資格情報を指定する必要はありません。

フォーム認証は、認証 構成要素の mode 属性を Formsに設定することで有効になります。 次の例に示すように、承認 構成要素を使用して不明なユーザーの要求を拒否することで、アプリケーションに対するすべての要求に有効なユーザー認証チケットを含める必要があります。

<system.web>
  <authentication mode="Forms">
    <forms loginUrl="login.aspx" />
  </authentication>
  <authorization>
    <deny users="?" />
  </authorization>
</system.web>

前の例では、アプリケーションの一部である ASP.NET ページに対するすべての要求には、フォーム認証によって提供される有効なユーザー名が必要です。 ユーザー名が存在しない場合、要求は構成された LoginUrlにリダイレクトされます。

FormsAuthentication クラスは、ユーザーを認証するアプリケーションで使用できるメソッドとプロパティへのアクセスを提供します。 RedirectToLoginPage メソッドは、ユーザーがアプリケーションにログインできるように、構成された LoginUrl にブラウザーをリダイレクトします。 RedirectFromLoginPage メソッドは、認証されたユーザーを、要求された元の保護された URL または DefaultUrlにリダイレクトします。 必要に応じて、フォーム認証チケットを管理できる方法もあります。

コンストラクター

FormsAuthentication()

FormsAuthentication クラスの新しいインスタンスを初期化します。

プロパティ

CookieDomain

フォーム認証 Cookie のドメインの値を取得します。

CookieMode

アプリケーションが Cookie レス フォーム認証用に構成されているかどうかを示す値を取得します。

CookieSameSite

Cookie の SameSite 属性の値を取得または設定します。

CookiesSupported

アプリケーションが Cookie レス フォーム認証をサポートするように構成されているかどうかを示す値を取得します。

DefaultUrl

リダイレクト URL が指定されていない場合に、FormsAuthentication クラスがリダイレクトする URL を取得します。

EnableCrossAppRedirects

認証されたユーザーを他の Web アプリケーションの URL にリダイレクトできるかどうかを示す値を取得します。

FormsCookieName

フォーム認証チケットの格納に使用する Cookie の名前を取得します。

FormsCookiePath

フォーム認証 Cookie のパスを取得します。

IsEnabled

フォーム認証が有効かどうかを示す値を取得します。

LoginUrl

FormsAuthentication クラスがリダイレクトするログイン ページの URL を取得します。

RequireSSL

フォーム認証 Cookie をサーバーに返すために SSL が必要かどうかを示す値を取得します。

SlidingExpiration

スライド式の有効期限が有効かどうかを示す値を取得します。

TicketCompatibilityMode

チケットの有効期限に協定世界時 (UTC) と現地時刻のどちらを使用するかを示す値を取得します。

Timeout

認証チケットの有効期限が切れるまでの時間を取得します。

メソッド

Authenticate(String, String)
古い.

アプリケーションの構成ファイルに格納されている資格情報に対して、ユーザー名とパスワードを検証します。

Decrypt(String)

メソッドに渡される暗号化されたフォーム認証チケットに基づいて、FormsAuthenticationTicket オブジェクトを作成します。

EnableFormsAuthentication(NameValueCollection)

フォーム認証を有効にします。

Encrypt(FormsAuthenticationTicket)

HTTP Cookie での使用に適した暗号化されたフォーム認証チケットを含む文字列を作成します。

Equals(Object)

指定したオブジェクトが現在のオブジェクトと等しいかどうかを判断します。

(継承元 Object)
GetAuthCookie(String, Boolean, String)

特定のユーザー名の認証 Cookie を作成します。 これにより、送信応答の一部として Cookie が設定されることはありません。

GetAuthCookie(String, Boolean)

特定のユーザー名の認証 Cookie を作成します。 これにより、Cookie は送信応答の一部として設定されないため、アプリケーションは Cookie の発行方法をより詳細に制御できます。

GetHashCode()

既定のハッシュ関数として機能します。

(継承元 Object)
GetRedirectUrl(String, Boolean)

ログイン ページへのリダイレクトの原因となった元の要求のリダイレクト URL を返します。

GetType()

現在のインスタンスの Type を取得します。

(継承元 Object)
HashPasswordForStoringInConfigFile(String, String)
古い.

指定されたパスワードとハッシュ アルゴリズムに基づいて、構成ファイルに格納するのに適したハッシュ パスワードを生成します。

Initialize()

アプリケーションの構成設定に基づいて、FormsAuthentication オブジェクトを初期化します。

MemberwiseClone()

現在の Objectの簡易コピーを作成します。

(継承元 Object)
RedirectFromLoginPage(String, Boolean, String)

認証されたユーザーを、フォーム認証 Cookie の指定された Cookie パスを使用して、最初に要求された URL または既定の URL にリダイレクトします。

RedirectFromLoginPage(String, Boolean)

認証されたユーザーを、最初に要求された URL または既定の URL にリダイレクトします。

RedirectToLoginPage()

ブラウザーをログイン URL にリダイレクトします。

RedirectToLoginPage(String)

指定したクエリ文字列を使用して、ブラウザーをログイン URL にリダイレクトします。

RenewTicketIfOld(FormsAuthenticationTicket)

FormsAuthenticationTicketの問題の日付と時刻と有効期限の日付と時刻を条件付きで更新します。

SetAuthCookie(String, Boolean, String)

指定されたユーザー名の認証チケットを作成し、指定された Cookie パスを使用するか、Cookie レス認証を使用している場合は URL を使用して、応答の Cookie コレクションに追加します。

SetAuthCookie(String, Boolean)

指定されたユーザー名の認証チケットを作成し、応答の Cookie コレクションに追加するか、Cookie レス認証を使用している場合は URL に追加します。

SignOut()

ブラウザーからフォーム認証チケットを削除します。

ToString()

現在のオブジェクトを表す文字列を返します。

(継承元 Object)

適用対象

こちらもご覧ください

  • フォーム認証プロバイダー の