FormsAuthenticationConfiguration クラス
ASP.NET アプリケーションのフォーム認証を構成します。
構文
class FormsAuthenticationConfiguration : EmbeddedObject
メソッド
このクラスにはメソッドが含まれていません。
プロパティ
次の表は、FormsAuthenticationConfiguration
クラスによって公開されるプロパティの一覧です。
名前 | 説明 |
---|---|
Cookieless |
フォーム認証で Cookie を使用する必要があるかどうかを指定する、読み取り/書き込みの sint32 列挙型。 使用できる値の一覧は、後述の「注釈」セクションに示します。 |
Credentials |
フォーム認証時に使用するユーザー名とパスワードのコレクションを含む、FormsAuthenticationCredentials 値。 注: セキュリティが必要な場合は、別の方法でユーザー名とパスワードを保存してください (データベース ストアに保存するなど)。 このコレクションを使用する場合は、FormsAuthenticationCredentials クラスの PasswordFormat プロパティで暗号化形式を指定してください。 |
DefaultUrl |
認証後の要求の送信先となる既定の URL を指定する、読み取り/書き込みの空でない string 値。 既定値は "default.aspx" です。 |
Domain |
フォーム認証 Cookie で送信されるドメイン名を指定する、読み取り/書き込みの string 値。 既定値は "" です。 フォーム認証 Cookie の場合、この設定は HttpCookiesSection クラスの Domain プロパティの設定よりも優先されます。 |
EnableCrossAppRedirects |
読み取り/書き込みの boolean 値。 認証されたユーザーを他のアプリケーションの URL にリダイレクトできる場合は true 、それ以外の場合は false 。 既定値は、false です。 このプロパティが true の場合、リダイレクトが実行されます。それ以外の場合、ブラウザーは DefaultUrl プロパティで定義されているページにリダイレクトされます。 注: 複数の ASP.NET アプリケーションでフォーム認証が有効になっている場合、ユーザーはアプリケーションを切り替えるときに再認証する必要はありません。 詳細については、「複数のアプリケーションにわたるフォーム認証」を参照してください。 |
LoginUrl |
ユーザーが認証されていない場合、または有効な認証 Cookie が存在しない場合に、要求がリダイレクトされる URL を指定する、空でない読み取り/書き込みの string 値。 既定値は "login.aspx" です。 |
Name |
要求認証に使用する HTTP Cookie の名前を指定する、空でない読み取り/書き込みの string 値。 既定値は ".ASPXAUTH" です。 |
Path |
認証に使用する HTTP Cookie のパスを指定する、空でない読み取り/書き込みの string 値。 パスは、認証 Cookie 自体と共に送信されます。 既定値は "/" で、Web アプリケーション ルートを表します。 |
Protection |
Cookie に使用される暗号化方法を指定する、読み取り/書き込みの sint32 値。 使用できる値の一覧は、後述の「注釈」セクションに示します。 |
RequireSSL |
読み取り/書き込みの boolean 値。 認証に Secure Sockets Layer (SSL) 接続が必要な場合は true 、それ以外の場合は false 。 既定値は、false です。 このプロパティが true の場合、Web アプリケーションで SSL 接続を使用しないフォーム認証要求がすべて拒否されます。 |
SlidingExpiration |
読み取り/書き込みの boolean 値。 認証 Cookie の有効期限が現在の日付と時刻に Timeout プロパティ内の値 (分単位) を加えた値に設定される場合は true 、それ以外の場合は false 。 既定値は、true です。true の場合で、かつ Timeout の値の半分以下が残っており、ユーザーがまだアクティブにアプリケーションを使用している場合、Cookie の有効期限の日付と時刻は自動的にリセットされます。 false の場合、Timeout プロパティで指定された時間間隔が経過すると、Cookie は自動的にタイムアウトします。 |
Timeout |
認証の有効期限が切れるまでの時間を指定する、読み取り/書き込みの datetime 値。 デフォルトは 30 分です。 |
サブクラス
このクラスにはサブクラスが含まれていません。
解説
このクラスのインスタンスは、AuthenticationSection クラスの Forms
プロパティに含まれています。
次の表に、Cookieless
プロパティとして使用できる値の一覧を示します。 既定値は 3 (UseDeviceProfile
) です。
Value | キーワード | 説明 |
---|---|---|
0 | UseUri |
ブラウザーやデバイスで Cookie をサポートしているかどうかに関係なく、呼び出し元の機能でクエリ文字列を使用して識別子が格納されることを指定します。 |
1 | UseCookies |
ブラウザーやデバイスで Cookie をサポートしているかどうかに関係なく、ユーザー データを保持するために Cookie が使用されることを指定します。 |
2 | AutoDetect |
要求元のブラウザーやデバイスで Cookie をサポートしているかどうかが ASP.NET によって決まることを指定します。 ブラウザーやデバイスで Cookie をサポートしている場合、要求元の機能で Cookie を使用してユーザー データが保持されます。それ以外の場合、要求元の機能でクエリ文字列内の識別子が使用されます。 ブラウザーやデバイスで Cookie をサポートしているが、Cookie が現在無効になっている場合、要求元の機能で Cookie が引き続き使用されます。 |
3 | UseDeviceProfile |
System.Web.Configuration.HttpCapabilitiesBase クラス の Cookies プロパティに基づいて Cookie を使用するかどうかが ASP.NET によって決まることを指定します。 ブラウザーやデバイスで Cookie をサポートすることが設定で示される場合、要求元の機能で Cookie が使用されます。それ以外の場合、要求元の機能でクエリ文字列内の識別子が使用されます。 |
次の表に、Protection
プロパティとして使用できる値の一覧を示します。 既定値は 0 (All
) です。
Value | キーワード | 説明 |
---|---|---|
0 | All |
Cookie を保護するためにアプリケーションでデータの検証と暗号化の両方が使用されることを指定します。 このオプションでは、MachineKeySection クラスで指定されたデータ検証アルゴリズムを使用します。 Triple Data Encryption Standard (Triple DES) が使用可能で、かつキーの長さが 48 バイト以上である場合、アプリケーションで暗号化に Triple DES が使用されます。 注: これは推奨される設定です。 Cookie の保護を強化するために、RequireSSL プロパティを true に設定することをお勧めします。 |
1 | None |
暗号化と検証を無効にすることを指定します。 この設定は、個人用設定にのみ Cookie を使用する、セキュリティ要件がそれほど高くないサイトを対象としています。 Cookie をこのような形で使用することはお勧めしませんが、.NET Framework を使って個人用設定を有効にする方法としては最もリソース消費が少なくて済みます。 |
2 | Encryption |
Cookie を Triple DES または DES を使用して暗号化することを指定します。 この設定では、Cookie に対してデータの検証が実行されないため、プレーンテキスト セキュリティ攻撃の標的になります。 |
3 | Validation |
暗号化された Cookie のコンテンツが転送中に変更されていないかどうかを検証するのに、アプリケーションで検証スキームが使用されることを指定します。 この Cookie は、検証キーと Cookie データを連結し、メッセージ認証コード (MAC) を算出して、送出 Cookie に MAC を付加することで作成されます。 |
例
次の例は、既定の Web サイトのフォーム認証設定を示します。
' Connect to the WMI WebAdministration namespace.
Set oWebAdmin = GetObject("winmgmts:root\WebAdministration")
' Get the authentication section.
Set oSite = oWebAdmin.Get("Site.Name='Default Web Site'")
oSite.GetSection "AuthenticationSection", oAuthSection
' Assign the Forms property to a variable.
Set oFormsAuthConfig = oAuthSection.Forms
' Display the Forms authentication settings.
WScript.Echo "Forms Authentication Settings"
WScript.Echo "-----------------------------"
WScript.Echo "Cookieless: [ " & _
CookielessText(oFormsAuthConfig.Cookieless)& " ]"
WScript.Echo "Default Url: [ " & _
oFormsAuthConfig.DefaultUrl& " ]"
WScript.Echo "Domain: [ " & oFormsAuthConfig.Domain& " ]"
WScript.Echo "EnableCrossAppRedirects: [ " & _
oFormsAuthConfig.EnableCrossAppRedirects& " ]"
WScript.Echo "LoginUrl: [ " & _
oFormsAuthConfig.LoginUrl & " ]"
WScript.Echo "Name: [ " & oFormsAuthConfig.Name& " ]"
WScript.Echo "Path: [ " & oFormsAuthConfig.Path& " ]"
WScript.Echo "Protection: [ " & _
ProtectionText(oFormsAuthConfig.Protection)& " ]"
WScript.Echo "RequireSSL: [ " & _
oFormsAuthConfig.RequireSSL& " ]"
WScript.Echo "SlidingExpiration: [ " & _
oFormsAuthConfig.SlidingExpiration& " ]"
WScript.Echo "Timeout: [ " & oFormsAuthConfig.Timeout& " ]"
' Call a sub to display the credentials information.
DisplayCredentials(oFormsAuthConfig.Credentials)
' Convert the Cookieless enumeration values to text.
Function CookielessText(enumValue)
Select Case enumValue
Case 0
CookielessText = "UseUri"
Case 1
CookielessText = "UseCookies"
Case 2
CookielessText = "AutoDetect"
Case 3
CookielessText = "UseDeviceProfile"
Case Else
CookielessText = "Undefined enumeration value."
End Select
End Function
' Convert the Protection enumeration values to text.
Function ProtectionText(enumValue)
Select Case enumValue
Case 0
ProtectionText = "All"
Case 1
ProtectionText = "None"
Case 2
ProtectionText = "Encryption"
Case 3
ProtectionText = "Validation"
Case Else
ProtectionText = "Undefined enumeration value."
End Select
End Function
' Display the Forms authentication credentials.
Sub DisplayCredentials(FA_Credentials)
WScript.Echo vbCrLf & "Forms Authentication Credentials"
WScript.Echo "--------------------------------"
' Display the password encryption format.
WScript.Echo "Password Format: " & _
PwdFormatText(FA_Credentials.PasswordFormat) & VbCrLf
' Display the Forms authentication users and passwords.
For Each FormsAuthUser In FA_Credentials.Credentials
WScript.Echo " Name: [ " & FormsAuthUser.Name & " ]"
WScript.Echo "Password: [ " & _
FormsAuthUser.Password& " ]"
WScript.Echo
Next
End Sub
' Convert the PasswordFormat enumeration values to text.
Function PwdFormatText(enumValue)
Select Case enumValue
Case 0
PwdFormatText = "Clear"
Case 1
PwdFormatText = "SHA1"
Case 2
PwdFormatText = "MD5"
Case Else
PwdFormatText = "Undefined enumeration value."
End Select
End Function
継承階層
FormsAuthenticationConfiguration
要件
型 | 説明 |
---|---|
クライアント | - Windows Vista 上の IIS 7.0 - Windows 7 上の IIS 7.5 - Windows 8 上の IIS 8.0 - Windows 10 上の IIS 10.0 |
[サーバー] | - Windows Server 2008 上の IIS 7.0 - Windows Server 2008 R2 上の IIS 7.5 - Windows Server 2012 上の IIS 8.0 - Windows Server 2012 R2 上の IIS 8.5 - Windows Server 2016 上の IIS 10.0 |
Product | - IIS 7.0、IIS 7.5、IIS 8.0、IIS 8.5、IIS 10.0 |
MOF ファイル | WebAdministration.mof |
参照
System.Web.Configuration.AuthenticationModeSystem.Web.Configuration.FormsAuthenticationConfigurationSystem.Web.Configuration.HttpCapabilitiesBaseAuthenticationSection クラス
EmbeddedObject クラス
FormsAuthenticationCredentials クラス
FormsAuthenticationUser クラス
MachineKeySection クラス
複数のアプリケーションにわたるフォーム認証
CIM_DATETIME