<forms> 要素
ASP.NET アプリケーションをカスタム フォーム ベース認証に合わせて設定します。
<configuration>
<system.web>
<authentication>
<forms>
<forms name="name" loginUrl="url"protection="All|None|Encryption|Validation"timeout="30" path="/" requireSSL="true|false" slidingExpiration="true|false"> <credentials passwordFormat="format"/></forms>
省略可能属性
属性 | オプション | 説明 |
---|---|---|
name | 認証に使用する HTTP Cookie を指定します。既定では、name の値は .ASPXAUTH です。1 つのサーバー上で複数のアプリケーションが実行され、各アプリケーションに一意の Cookie が必要な場合は、各アプリケーションの Web.config ファイルで Cookie 名を設定する必要があります。 | |
loginUrl | 有効な認証 Cookie が見つからない場合に、ログオンのために要求をリダイレクトする先の URL を指定します。既定値は default.aspx です。 | |
protection | Cookie に使用する暗号化の種類を指定します。 | |
All | アプリケーションが Cookie を保護するためにデータ検証と暗号化を両方とも使用することを指定します。このオプションでは、(<machineKey> 要素に基づいて) 設定されたデータ検証アルゴリズムを使用します。Triple-DES (3DES) 方式が利用でき、キーの長さが十分である場合は (48 バイト以上)、Triple-DES を使用して暗号化します。All は、既定値です。これは推奨値でもあります。 | |
None | Cookie がパーソナル化だけのために使用され、セキュリティの要件が低く設定されているサイトで、暗号化と検証を両方とも使用しないことを指定します。この方法で Cookie を使用することはお勧めできません。しかし、この方法では、.NET Framework を使用してパーソナル化を有効にするために使用するリソースを最小限に抑えることができます。 | |
Encryption | Triple-DES または DES を使用して Cookie を暗号化するけれども、Cookie に対するデータ検証は実行しないことを指定します。この方法で使用される Cookie は、なんらかの平文攻撃の対象になる可能性があります。 | |
Validation | 暗号化された Cookie が送信中に変更されていないことを、検証スキームを使用して検査することを指定します。Cookie 検証を使用して Cookie を作成する場合は、検証キーと Cookie データを連結し、MAC (Message Authentication Code) を計算してから、送信する Cookie にその MAC を追加します。 | |
timeout | Cookie のタイムアウトまでの所要時間を整数の分の値で指定します。既定値は 30 です。SlidingExpiration が true の場合、timeout 属性は変化する値であり、最後の要求を受信してから指定した時間 (分) が経過するとタイムアウトします。パフォーマンスの低下を防ぎ、Cookie 警告が有効になっているユーザーに対して複数のブラウザ警告が出力されないようにするために、指定した時間の半分が経過すると Cookie は更新されます。これにより、精度が低下する可能性があります。永続的な Cookie がタイムアウトすることはありません。 | |
path | アプリケーションが発行する Cookie のパスを指定します。既定値はスラッシュ (/) です。これは、ほとんどのブラウザでは大文字と小文字が区別されるため、パスの大文字と小文字が正確に一致しない場合には Cookie が戻されないからです。 | |
requireSSL | 認証 Cookie を送信するために安全な接続が必要かどうかを指定します。 | |
true | ユーザーの資格情報を保護するために安全な接続が必要であることを指定します。true を指定すると、ASP.NET で認証 Cookie に HttpCookie.Secure が設定され、規格に準拠しているブラウザでは、SSL (Secure Sockets Layer) の接続でない限り、Cookie は返しません。 | |
false | Cookie の送信に安全な接続は必要ないことを指定します。既定値は false です。 | |
slidingExpiration | 変化する有効期限が有効かどうかを指定します。変化する有効期限を指定すると、アクティブな認証 Cookie の有効期限が単一のセッション内の各要求ごとにリセットされます。 | |
true | 変化する有効期限が有効であることを指定します。単一のセッション内で、以降の要求ごとに認証 Cookie は更新され、有効期限までの時間がリセットされます。ASP.NET バージョン 1.0 での既定値は true でした。 | |
false | 変化する有効期限を有効にしないことを指定します。Cookie は、発行されたときから指定の期間がたつと有効期限が切れます。既定値は false です。 |
サブタグ
サブタグ | 説明 |
---|---|
<credentials> | 構成ファイル内で、名前資格情報およびパスワード資格情報を定義できるようにします。カスタム パスワード スキームを実装して、検証を制御するためにデータベースなどの外部ソースを使用することもできます。 |
解説
1 つのサーバー上で複数のアプリケーションが実行される場合は、各アプリケーションの Web.config ファイルで <forms> 属性を設定する必要があります。
例
フォーム ベース認証のサイトを設定し、クライアントからのログオン情報を伝送する Cookie の名前を指定し、最初の認証が失敗したときに使用するログオン ページの名前を指定する例を次に示します。
<configuration>
<system.web>
<authentication mode="Forms">
<forms name="401kApp" loginUrl="/login.aspx">
<credentials passwordFormat = "SHA1"
<user name="UserName"
password="07B7F3EE06F278DB966BE960E7CBBD103DF30CA6"/>
</credentials>
</forms>
</authentication>
</system.web>
</configuration>
必要条件
格納されている場所 : <system.web>
Web プラットフォーム : IIS 5.0、IIS 5.1、IIS 6.0
構成ファイル : Machine.config、Web.config
構成セクション ハンドラ : System.Web.Configuration.AuthenticationConfigHandler