ASP.NET フォーム認証の概要

更新 : 2007 年 11 月

フォーム認証では、独自のコードを使用し、認証トークンを Cookie またはページ URL に保存してユーザーを認証できます。フォーム認証は、FormsAuthenticationModule クラスを介して ASP.NET ページのライフ サイクルに参加します。フォーム認証の情報と機能には、FormsAuthentication クラスを使用してアクセスできます。

フォーム認証を使用するには、ユーザーから資格情報を収集し、それを認証するためのコードを含むログイン ページを作成します。通常は、ユーザーが保護されたリソース (認証が必要なページなど) にアクセスしようとしたときに、要求をログイン ページにリダイレクトするようにアプリケーションを構成します。ユーザーの資格情報が有効な場合は、FormsAuthentication クラスのメソッドを呼び出し、適切な認証チケット (Cookie) を使用して、要求を最初に要求されたリソースにリダイレクトできます。リダイレクトしない場合は、単にフォーム認証の Cookie を取得または設定できます。その後の要求では、ユーザーのブラウザは要求と共に認証 Cookie を渡した後、ログイン ページをバイパスします。

フォーム認証は、authentication 構成要素を使用して構成します。最も簡単な方法は、ログイン ページを使用することです。構成ファイルで、認証されていない要求をログイン ページにリダイレクトするための URL を指定します。次に、Web.config ファイルまたは別個のファイルで有効な資格情報を定義します。Authenticate メソッドのためにログイン ページと認証資格情報を指定する構成ファイルのセクションの例を次に示します。パスワードは、HashPasswordForStoringInConfigFile メソッドを使用して暗号化されています。

<authentication mode="Forms">
   <forms name="SavingsPlan" loginUrl="/Login.aspx">
      <credentials passwordFormat="SHA1">
         <user name="Kim"
               password="07B7F3EE06F278DB966BE960E7CBBD103DF30CA6"/>
         <user name="John"
               password="BA56E5E0366D003E98EA1C7F04ABF8FCB3753889"/>
      </credentials>
   </forms>
</authentication>

認証に成功すると、FormsAuthenticationModule モジュールは User プロパティの値を認証されたユーザーへの参照に設定します。フォーム認証されたユーザーの ID をプログラムによって読み取る方法のコード例を次に示します。

Dim authUser2 As String = User.Identity.Name
String authUser2 = User.Identity.Name;

フォーム認証、ASP.NET メンバシップ、およびログイン コントロール

フォーム認証を簡単に処理するには、ASP.NET メンバシップと ASP.NET ログイン コントロールを使用します。ASP.NET メンバシップ (ユーザーを認証するためのメソッドが含まれています) を使用して、ユーザー情報を格納して管理できます。ASP.NET ログイン コントロールは ASP.NET メンバシップと共に使用します。ユーザーに対する資格情報の入力の要求、ユーザーの検証、パスワードの回復や置き換えなどの処理に必要なロジックをカプセル化します。実際には、ASP.NET メンバシップと ASP.NET ログイン コントロールはフォーム認証に関する抽象化レイヤを提供します。これらの機能は、フォーム認証を使用するために一般的に必要な、ほとんどまたはすべての作業に代わるものです。詳細については、「メンバシップを使用したユーザーの管理」および「ASP.NET ログイン コントロールの概要」を参照してください。

フォーム認証と認証サービス

ASP.NET 認証サービスを使用して、WCF (Windows Communication Framework) サービスとしてフォーム認証にアクセスすることもできます。認証サービスを使用すると、SOAP 形式でメッセージを送信および処理できる任意のアプリケーションからフォーム認証を使用できます。認証サービスはユーザー資格情報を受け入れ、フォーム認証 Cookie を返します。

たとえば、ユーザーが .NET Framework で開発されていないアプリケーションからログインするようにできます。詳細については、「Windows Communication Foundation の認証サービスの概要」を参照してください。

参照

概念

ASP.NET 構成の概要

その他の技術情報

ASP.NET Web アプリケーションのセキュリティ

フォーム認証プロバイダ