authentication の forms 要素 (ASP.NET 設定スキーマ)

ASP.NET アプリケーションをカスタム フォーム ベース認証に合わせて設定します。

<forms 
   name="name" 
   loginUrl="URL" 
   defaultUrl="URL"
   protection="[All|None|Encryption|Validation]"
   timeout="[MM]"
   path="path"
   requireSSL="[true|false]"
   slidingExpiration="[true|false]">
   enableCrossAppRedirects="[true|false]"
   cookieless="[UseUri|UseCookies|AutoDetect|UseDeviceProfile]" 
   domain="domain name"
   ticketCompatibilityMode="[Framework20|Framework40]">
   <credentials>...</credentials>
</forms>

属性および要素

以降のセクションでは、属性、子要素、および親要素について説明します。

属性

属性

説明

cookieless

省略可能な属性です。

Cookie を使用するかどうか、および Cookie の動作を定義します。

この属性には、次のいずれかの値を指定できます。

メモメモ
AJAX 対応の ASP.NET Web サイトでは、cookieless 属性に既定値 UseCookies を使用します。URL にエンコードされた Cookie を使用する設定は、ASP.NET AJAX クライアント スクリプト ライブラリではサポートされません。
値説明
UseCookies デバイスには関係なく、Cookie を常に使用するように指定します。
UseUri Cookie を使用しないように指定します。
AutoDetect デバイス プロファイルが Cookie をサポートする場合は Cookie を使用するように指定します。サポートしない場合は、Cookie を使用しません。デスクトップ ブラウザーが Cookie をサポートしていることがわかっている場合は、調査機構によって Cookie の状態が調査され、Cookie が有効になっている場合はそれが使用されます。デバイスが Cookie をサポートしていない場合には、調査機構は使用されません。
UseDeviceProfile ブラウザーが Cookie をサポートする場合は Cookie を使用するように指定します。サポートしない場合は、Cookie を使用しません。 Cookie をサポートしているデバイスの場合、Cookie のサポートが有効になっているかどうかの調査は行われません。

この属性は .NET Framework Version 2.0 で新たに追加されました。

既定値は UseDeviceProfile. です。

defaultUrl

省略可能な属性です。

認証後のリダイレクトに使用する既定の URL を定義します。

この属性は .NET Framework Version 2.0 で新たに追加されました。

既定値は、"default.aspx" です。

domain

省略可能な属性です。

送信するフォーム認証 Cookie に設定するオプションのドメインを指定します。 この設定は、httpCookies 要素で使用するドメインよりも優先されます。

この属性は .NET Framework Version 2.0 で新たに追加されました。

既定値は、空の文字列 ("") です。

enableCrossAppRedirects

省略可能な属性です。

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

メモメモ
アプリケーション間でリダイレクトを実行するときには、authentication の forms 要素 (ASP.NET 設定スキーマ) 内の属性の一部が認証されたアプリケーション間で重複していないかどうかを確認する必要があります。詳細および使用例については、「アプリケーション間のフォーム認証」を参照してください。

この属性には、次のいずれかの値を指定できます。

値説明
True 認証されたユーザーを他の Web アプリケーション内の URL にリダイレクトできることを指定します。
False 認証されたユーザーを他の Web アプリケーション内の URL にリダイレクトできないことを指定します。

この属性は .NET Framework Version 2.0 で新たに追加されました。

既定値は、False です。

loginUrl

省略可能な属性です。

有効な認証 Cookie が見つからない場合に、ログオンのために要求をリダイレクトする先の URL を指定します。

既定値は、login.aspx です。

name

省略可能な属性です。

認証に使用する HTTP Cookie を指定します。 1 つのサーバー上で複数のアプリケーションが実行され、各アプリケーションに一意の Cookie が必要な場合は、各アプリケーションの Web.config ファイルで Cookie 名を設定する必要があります。

既定値は、".ASPXAUTH" です。

path

省略可能な属性です。

アプリケーションが発行する Cookie のパスを指定します。

既定値はスラッシュ (/) です。これは、ほとんどのブラウザーでは大文字と小文字が区別されるため、パスの大文字と小文字が正確に一致しない場合には Cookie が戻されないからです。

protection

省略可能な属性です。

Cookie に使用する暗号化の種類を指定します。

この属性には、次のいずれかの値を指定できます。

値説明
All アプリケーションが Cookie の保護を支援するためにデータ検証と暗号化を両方とも使用することを指定します。このオプションでは、machineKey 要素に基づく構成済みのデータ検証アルゴリズムを使用します。キーの長さが 48 バイト以上の場合、可能であれば 3DES (Triple-DES) が使用されます。All は既定値で、推奨値でもあります。
Encryption 3DES または DES を使用することにより Cookie を暗号化するけれども、Cookie に対するデータ検証は実行しないことを指定します。この方法で使用される Cookie は、なんらかの平文攻撃の対象になる可能性があります。
None Cookie がパーソナル化だけのために使用され、セキュリティの要件が低く設定されているサイトで、暗号化と検証を両方とも使用しないことを指定します。この方法で Cookie を使用することはお勧めできません。しかし、この方法では、.NET Framework でパーソナル化を有効にするために使用するリソースを最小限に抑えることができます。
Validation 暗号化された Cookie が送信中に変更されていないことを、検証スキームを使用して検査することを指定します。Cookie 検証を使用して Cookie を作成する場合は、検証キーと Cookie データを連結し、MAC (Message Authentication Code) を計算してから、送信する Cookie にその MAC を追加します。

既定値は、All です。

requireSSL

省略可能な属性です。

認証 Cookie を送信するために SSL 接続が必要かどうかを指定します。

この属性には、次のいずれかの値を指定できます。

値説明
True ユーザーの資格情報の保護を支援するために SSL 接続が必要であることを指定します。True を指定すると、ASP.NET は認証 Cookie に Secure プロパティを設定します。この場合、規格に準拠しているブラウザーは、接続に SSL を使用していない限り、Cookie を返しません。
False Cookie の送信に SSL 接続は必要ないことを指定します。既定値は、False です。

既定値は、False です。

slidingExpiration

省略可能な属性です。

スライド式有効期限が有効かどうかを指定します。 スライド式有効期限を指定すると、Cookie のアクティブな認証の有効期限が単一のセッション内の要求ごとにリセットされます。

この属性には、次のいずれかの値を指定できます。

値説明
True スライド式有効期限が有効であることを指定します。単一のセッション内で、以降の要求ごとに認証 Cookie は更新され、有効期限までの時間がリセットされます。
False スライド式有効期限を有効にしないことを指定します。Cookie は、発行されたときから指定の期間がたつと有効期限が切れます。

既定値は、True です。

ticketCompatibilityMode

省略可能な属性です。

フォーム認証に使用するチケットの有効期限を世界協定時刻 (UTC: Coordinated Universal Time) と現地時間のどちらで設定するかを指定します。

この属性には、次のいずれかの値を指定できます。

値説明
Framework20 チケットの有効期限を現地時間で保存することを指定します。
Framework40 チケットの有効期限を UTC で保存することを指定します。

既定値は Framework20 です。

timeout

省略可能な属性です。

Cookie のタイムアウトまでの時間を整数の分の値で指定します。 SlidingExpiration 属性が true の場合、timeout 属性は変化する値です。最後の要求を受信してから指定した時間 (分単位) が経過するとタイムアウトします。 パフォーマンスの低下を防ぎ、Cookie 警告が有効になっているユーザーに対して複数のブラウザー警告が出力されないようにするために、指定した時間の半分が経過すると Cookie は更新されます。 これにより、精度が低下する可能性があります。 既定値は "30" (30 分) です。

メモメモ
ASP.NET V1.1 の場合、永続的な Cookie は timeout 属性の設定に関係なくタイムアウトしません。一方、ASP.NET V2.0 の場合、永続的な Cookie は timeout 属性に従ってタイムアウトします。

子要素

サブタグ

説明

credentials

構成ファイル内で、名前資格情報およびパスワード資格情報を任意に定義できるようにします。 カスタム パスワード スキームを実装して、検証を制御するためにデータベースなどの外部ソースを使用することもできます。

親要素

要素

説明

configuration

共通言語ランタイムおよび .NET Framework アプリケーションで使用されるすべての構成ファイルで必要なルート要素を指定します。

system.web

構成ファイルの ASP.NET 構成設定のルート要素を指定します。ASP.NET Web アプリケーションを構成する構成要素やアプリケーションの動作を制御する構成要素が含まれます。

authentication

ASP.NET アプリケーションを参照するユーザーの識別に使用する、ASP.NET 認証スキーマを構成します。

解説

forms 要素は、ASP.NET アプリケーションをカスタム フォーム ベース認証に合わせて設定します。 単一のサーバー上で複数のアプリケーションを実行する場合は、各アプリケーションの Web.config ファイルに forms 要素の属性を構成する必要があります。 詳細については、「アプリケーション間のフォーム認証」を参照してください。

URI にフォーム認証チケットを含めて送信する場合は、URI の最大サイズを超過できます。 匿名識別チケット、フォーム認証チケット、セッション ID、およびユーザー データの組み合わせが URI で許容される最大長より長い場合、要求は "400-Bad Request" エラーを生成して失敗します。

既定の構成

次の既定の forms 要素は、Machine.config ファイルまたはルートの Web.config ファイルでは明示的に構成されません。 ただし、これは .NET Framework Version 2.0 のアプリケーションにより返される既定の構成です。

<forms 
   name=".ASPXAUTH" 
   loginUrl="login.aspx" 
   defaultUrl="default.aspx" 
   protection="All" 
   timeout="30" 
   path="/" 
   requireSSL="false" 
   slidingExpiration="true" 
   cookieless="UseDeviceProfile" domain="" 
   enableCrossAppRedirects="false">
   <credentials passwordFormat="SHA1" />
</forms>

次の既定の forms 要素は、.NET Framework Version 1.1 の Machine.config ファイルで構成されます。

<forms 
   name=".ASPXAUTH" 
   loginUrl="login.aspx" 
   protection="All"  
   timeout="30" 
   path="/" 
   requireSSL="false" 
   slidingExpiration="true">
   <credentials passwordFormat="SHA1"></credentials>
</forms>

次の既定の forms 要素は、.NET Framework Version 1.0 の Machine.config ファイルで構成されます。

<forms 
   name=".ASPXAUTH" 
   loginUrl="login.aspx" 
   protection="All"  
   timeout="30" 
   path="/" >
   <credentials passwordFormat="SHA1"></credentials>
</forms>

使用例

フォーム ベース認証のサイトを設定し、クライアントからのログオン情報を伝送する Cookie の名前を指定し、最初の認証が失敗したときに使用するログオン ページの名前を指定する方法を次のコード例に示します。

<configuration>
   <system.web>
   <authentication mode="Forms">
      <forms 
      name="401kApp" 
      loginUrl="/login.aspx"
      cookieless="AutoDetect"
      defaultUrl="myCustomLogin.aspx">
      <credentials passwordFormat = "SHA1">   
         <user name="UserName" 
         password="07B7F3EE06F278DB966BE960E7CBBD103DF30CA6"/>
      </credentials>   
      </forms>
   </authentication>
   </system.web>
</configuration>

要素情報

構成セクション ハンドラー

AuthenticationSection

構成メンバー

FormsAuthentication

FormsAuthenticationConfiguration

構成できる場所

Machine.config

ルート レベルの Web.config

アプリケーション レベルの Web.config

要件

Microsoft Internet Information Services (IIS) バージョン 5.0、5.1、または 6.0

.NET Framework Version 1.0、1.1、または 2.0

Microsoft Visual Studio 2003 または Visual Studio 2005

参照

処理手順

方法 : Location の設定を使用して特定のディレクトリを構成する

方法 : ASP.NET 構成設定をロックする

参照

authentication 要素 (ASP.NET 設定スキーマ)

authentication の forms の credentials 要素 (ASP.NET 設定スキーマ)

system.web 要素 (ASP.NET 設定スキーマ)

authentication の passport 要素 (ASP.NET 設定スキーマ)

configuration 要素 (全般設定スキーマ)

System.Configuration

System.Web.Configuration

AuthenticationSection

FormsAuthentication

概念

アプリケーション間のフォーム認証

ASP.NET 構成ファイルの階層と継承

ASP.NET 構成の保護

ASP.NET の構成のシナリオ

その他の技術情報

ASP.NET の認証

全般構成設定 (ASP.NET)

ASP.NET 構成設定

ASP.NET Web サイト管理

ASP.NET 構成ファイル

ASP.NET 構成 API