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>

属性および要素

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

属性

属性

Description

cookieless

省略可能な属性です。

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

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

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

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

既定値は UseDeviceProfile. です。

defaultUrl

省略可能な属性です。

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

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

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

domain

省略可能な属性です。

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

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

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

enableCrossAppRedirects

省略可能な属性です。

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

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

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

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

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

既定値は、False です。

loginUrl

省略可能な属性です。

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

既定値は、login.aspx です。

name

省略可能な属性です。

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

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

path

省略可能な属性です。

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

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

protection

省略可能な属性です。

クッキーに使用する暗号化の種類を指定します。

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

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

既定値は、All です。

requireSSL

省略可能な属性です。

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

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

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

既定値は、False です。

slidingExpiration

省略可能な属性です。

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

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

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

既定値は、True です。

ticketCompatibilityMode

省略可能な属性です。

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

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

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

既定値 Framework20 です。

timeout

省略可能な属性です。

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

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

子要素

サブタグ

Description

credentials

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

親要素

要素

Description

configuration

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

system.web

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

authentication

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

解説

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

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>

使用例

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

<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

参照

処理手順

How to: Configure Specific Folders Using Location Settings

How to: Lock ASP.NET Configuration Settings

Reference

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

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

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

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

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

System.Configuration

System.Web.Configuration

AuthenticationSection

FormsAuthentication

概念

Forms Authentication Across Applications

ASP.NET Configuration File Hierarchy

Securing Configuration

Configuration Inheritance

その他の技術情報

ASP.NET Authentication

全般構成設定 (ASP.NET)

ASP.NET 構成設定

Configuring ASP.NET Applications

ASP.NET Configuration Files

ASP.NET Configuration API