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 に保持して、認証されたユーザーが各要求に資格情報を指定する必要がないようにします。

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

<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

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

CookieMode

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

CookieSameSite

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

CookiesSupported

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

DefaultUrl

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

EnableCrossAppRedirects

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

FormsCookieName

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

FormsCookiePath

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

IsEnabled

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

LoginUrl

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

RequireSSL

フォーム認証のクッキーをサーバーに返すために SSL を必要とするかどうかを示す値を取得します。

SlidingExpiration

変化する有効期限が有効かどうかを示す値を取得します。

TicketCompatibilityMode

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

Timeout

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

メソッド

Authenticate(String, String)
古い.

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

Decrypt(String)

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

EnableFormsAuthentication(NameValueCollection)

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

Encrypt(FormsAuthenticationTicket)

HTTP クッキーで使用するのに適した暗号化認証チケットを格納している文字列を生成します。

Equals(Object)

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

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

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

GetAuthCookie(String, Boolean, String)

指定したユーザー名の認証クッキーを作成します。 クッキーは発信応答の一部として設定されません。

GetHashCode()

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

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

ログイン ページへのリダイレクトを引き起こした元の要求に対する、リダイレクト URL を返します。

GetType()

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

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

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

Initialize()

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

MemberwiseClone()

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

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

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

RedirectFromLoginPage(String, Boolean, String)

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

RedirectToLoginPage()

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

RedirectToLoginPage(String)

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

RenewTicketIfOld(FormsAuthenticationTicket)

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

SetAuthCookie(String, Boolean)

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

SetAuthCookie(String, Boolean, String)

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

SignOut()

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

ToString()

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

(継承元 Object)

適用対象

こちらもご覧ください