<configuration> | |
<configuration> </configuration> |
|
すべての構成ファイルのルート要素です。この要素は必須です。 |
|
スコープ | |
すべて |
|
属性 | |
なし |
|
<appSettings> | |
<appSettings> </appSettings> | |
<appSettings> 要素を使用して、カスタムアプリケーション設定を「キー/値」のペアとして構成できます。次の例に示すとおり、ConfigurationSettings クラスの AppSettings プロパティを使用して、実行時にこれらの設定を取得できます。この静的な共有プロパティにアクセスする前に ConfigurationSettings クラスをインスタンス化する必要はありません。 |
|
スコープ | |
任意 |
|
属性 | |
なし |
|
子要素 | |
|
|
例 | |
次の "web.config" のセクションは、アプリケーションレベルの「キー/値」のペアを設定します。 |
|
<configuration> <appSettings> <add key="applicationConfigKey" value="bar"/> </appSettings> </configuration> |
|
次の ASP.NET ページは、先行するコードで設定された値と、machine.config レベルで設定された値を取得します。 |
|
<%@ Page Language="VB" %> <html> <head> <script runat="server"> Sub Page_Load( ) Message1.Text &= _ ConfigurationSettings.AppSettings("machineConfigKey") Message2.Text &= _ ConfigurationSettings.AppSettings("applicationConfigKey") End Sub </script> </head> <body> <asp:label id="Message1" runat="server">Machine.Config setting: </asp:label> <br/> <asp:label id="Message2" runat="server">Web.Config setting: </asp:label> </body> </html> |
|
メモ | |
例に示したように、<appSettings> 要素は、<system.web> 要素およびその子要素とは別個に使用することができます。 |
|
セキュリティ上の理由により、<appSettings> 要素を使用して保存するデータの種類については十分に検討してください。ASP.NET ランタイムはアプリケーションの "web.config" ファイルに対する要求または読み取りが行われないように設定されていますが、何らかの方法で Web サーバーのセキュリティが侵害された場合にはこのファイルが脆弱になります。したがって、通常は、ユーザー名やパスワード、またはユーザー名とパスワードを含む接続文字列などの機密情報は "web.config" ファイルに保存しないようにしてください。ある程度の脆弱性は残りますが、この方法より優れた代替案として、このような機密情報を "machine.config" レベルに保存します。このファイルはアプリケーションの Web 領域外にあるため、IIS に対する攻撃による脆弱性がいくらか低くなります。ただし、この情報はコンピュータ上のすべてのアプリケーションから利用できることを覚えておいてください。 |
|
<system.web> | |
<system.web> </system.web> |
|
"web.config" ファイルで使用されているすべての要素を格納するための要素です。 |
|
スコープ | |
すべて |
|
属性 | |
なし |
|
子要素 | |
<authentication>、<authorization>、<browserCaps>、<clientTarget>、<compilation>、<customErrors>、<globalization>、<httpHandlers>、<httpModules>、<httpRuntime>、<identity>、<iisFilter>、<machineKey>、<pages>、<processModel>、<securityPolicy>、<sessionState>、<trace>、<trust>、<webServices> |
|
メモ | |
<system.web> 要素は、その子要素を使用するために必須です。 |
|
<authentication> | |
<authentication> </authentication> | |
属性を示し、ASP.NET で認証オプションの構成に使用する子要素を記述します。 |
|
スコープ | |
コンピュータ、アプリケーション |
|
属性 | |
|
|
子要素 | |
<forms>、<passport> |
|
例 | |
次の例は、構成ファイルのスコープ内にページを構成して、ASP.NET のフォームベース認証を使用します。 |
|
<configuration> <system.web> <authentication mode="Forms"> <forms name="myAuthCookie" loginUrl="login.aspx" protection="All" timeout="30" path="/" /> </authentication> </system.web> </configuration> |
|
メモ | |
必要に応じて、<location> 要素を使用してコンピュータレベルで認証を構成できます。また、この要素の allowOverride 属性を使用すると、個々のアプリケーションでこれらの設定が上書きされないように設定できます。 |
|
認証はかなり複雑なトピックです。ASP.NET 認証のさまざまな方法と IIS 認証との関連の詳細については、第 9 章を参照してください。 |
|
<forms> | |
<forms loginUrl=String name=String path=String protection="All|None|Encryption|Validation" timeout=Integer> </forms> |
|
属性および <credentials> という 1 つの子要素を示して、フォームベース認証を使用するように ASP.NET を構成します。 |
|
スコープ | |
コンピュータ、アプリケーション |
|
属性 | |
|
|
子要素 | |
<credentials> |
|
例 | |
<authentication> 要素の例を参照してください。 |
|
メモ | |
フォームベース認証は、<authorization> 要素と併用して、アプリケーション内のページに対する匿名ユーザーのアクセスを拒否する場合にのみ有効です。 |
|
フォーム認証の資格情報が奪われないように、SSL 暗号化を使用してこれらの資格情報および Cookie を保護することをお勧めします。SSL を使用できない場合、または使用を希望しない場合は、少なくともデフォルトの timeout 値を減少させて、第三者が認証 Cookie を捕捉および偽装する可能性を低くしてください。 |
|
<credentials> | |
<credentials passwordFormat="Clear|SHA1|MD5"> </credentials> | |
アプリケーションまたはコンピュータの構成ファイルに資格情報のセットを保存して、後で要求の認証に使用できるようにします。実際の資格情報の保存には <user> 子要素が使用されます。 |
|
スコープ | |
コンピュータ、アプリケーション |
|
属性 | |
|
|
子要素 | |
<user> |
|
例 | |
次の例は、<credentials> 要素を使用して認証対象となる 2 つのユーザーアカウントを保存します。 |
|
<credentials passwordFormat = "SHA1"> <user name="foo" password="794ED3D18464BAFF93F8DED1CFD00D9A2D9FE316"/> <user name="bar" password="B7CDD2A2B0F05E6948E5CEED22FA9A38EB28DEC8"/> </credentials> |
|
メモ | |
資格情報をいったん保存すると、FormsAuthentication ヘルパークラスの静的 (共有) メソッド Authenticate を呼び出して、その資格情報で認証することができます。FormsAuthentication の静的 (共有) メソッド HashPasswordForStoringInConfigFile を使用してパスワードの MD5 ハッシュまたは SHA1 ハッシュを作成し、<user> 要素に保存することができます。<credentials> 要素を使用して資格情報を保存するときは、常にパスワードをハッシュしてください。読み取り可能なテキストでパスワードを保存すると、セキュリティ上の危険を伴う可能性があります。理論上は、構成ファイルを読み取ることはできませんが、サーバーの構成の誤りまたはセキュリティの脆弱性が原因で、このファイルが公開される可能性があります。 |
|
<user> | |
<user> | |
<credentials> 要素で定義された各ユーザーのユーザー名とパスワードを保存します。 |
|
スコープ | |
コンピュータ、アプリケーション |
|
属性 | |
|
|
子要素 | |
なし |
|
例 | |
<credentials> 要素の例を参照してください。 |
|
メモ | |
password 属性に保存したパスワードをハッシュするには、HashPasswordForStoringInConfigFile メソッドを常に使用してください。第 9 章の例に、プレーンテキストのパスワードの SHA1 ハッシュまたは MD5 ハッシュを作成するユーティリティページがあります。 |
|
<passport> | |
<passport redirectUrl=Url /> |
|
この要素は省略可能です。Microsoft Passport 認証プロバイダを使用しているときに、認証されていない要求のリダイレクト先となる内部 URL を構成します。この要素は、<authentication> 要素の mode 属性が Passport に設定されている場合にのみ使用してください。 |
|
スコープ | |
コンピュータ、アプリケーション |
|
属性 | |
|
|
子要素 | |
なし |
|
例 | |
次の例は、Passport 認証用のアプリケーションを構成する "web.config" ファイルを示しています。 |
|
<configuration> <system.web> <authentication mode="Passport"> <passport redirectUrl="Login.aspx"/> </authentication> </system.web> </configuration> |
|
メモ | |
Passport 認証の構成の詳細については、http//www.passport.com から入手可能な Passport SDK のマニュアルを参照してください。 |
|
<allow> | |
アプリケーションに対して認証するユーザー、ロール、および HTTP の動詞を指定します。 |
|
スコープ | |
任意 |
|
属性 | |
|
|
子要素 | |
なし |
|
例 | |
<authorization> 要素の例を参照してください。 |
|
メモ | |
次の 2 つのワイルドカードを使用して、特別なユーザーグループを指定できます。 |
|
|
|
<deny> | |
アプリケーションに対する認証を拒否するユーザー、ロール、および HTTP の動詞を指定します。 |
|
スコープ | |
任意 |
|
属性 | |
|
|
子要素 | |
なし |
|
例 | |
<authorization> 要素の例を参照してください。 |
|
メモ | |
<allow> 要素で使用されているワイルドカードは、<deny> 要素にも適用されます。認証されていない匿名ユーザーへのアクセスを拒否するには、<deny> 要素の users 属性の値を ? に設定します。 |
|
<browserCaps> | |
<browserCaps> <result type=className /> <use var=serverVarName /> property1=value property2=value propertyN=value <filter match=string> property1=value property2=value propertyN=value </filter> <filter match=string> <filter match=string with=expressionToSearch> property1=value property2=value propertyN=value </filter> </filter> <filter> <case match=string> property1=value property2=value propertyN=value </case> <case match=string> property1=value property2=value propertyN=value </case> </filter> </browserCaps> | |
Response.Browser プロパティから返されたブラウザ機能コンポーネントの構成を制御します。<use> 要素の「プロパティ/値」のペアで、ブラウザ機能コンポーネントのプロパティの初期設定値を構成します。<filter> 要素の「プロパティ/値」のペアで、<case> 要素の match 属性に指定した文字列値と <use> 要素の var 属性 (通常は HTTP_USER_AGENT に設定) の値の一致に基づいて、これらのプロパティを更新します。 |
|
スコープ | |
任意 |
|
属性 | |
なし |
|
子要素 | |
<result>、<use>、<filter> |
|
例 | |
"machine.config" 構成ファイルには、<browserCaps> 要素のデフォルト設定が記述されています。この要素を変更または更新する場合は、このデフォルト設定を参考にしてください。 |
|
メモ | |
この構成要素とその子要素の主要な目的は、新しい種類のブラウザを追加し、これらのブラウザ機能を更新できるようにすることです。したがって、ページからブラウザ機能コンポーネントを呼び出すと、現在の要求に使用されているブラウザの機能に関する正確な情報が返されます。 |
|
<result> | |
<result type=className /> | |
クラスを指定します。 |
|
スコープ | |
任意 |
|
属性 | |
|
|
子要素 | |
なし |
|
メモ | |
ほとんどの場合、System.Web.HttpBrowserCapabilities のデフォルトのタイプは問題ありません。HttpBrowserCapabilities クラスに定義されていないプロパティを追加する場合、HttpCapabilitiesBase または HttpBrowserCapabilities から派生した独自のクラスを作成することができます。または、代わりに <result> 要素を使用できます。 |
|
<use> | |
<use var=serverVariableName as=aliasName /> | |
ブラウザ機能を評価するときに使用するサーバー変数の名前を設定します。 |
|
スコープ | |
任意 |
|
属性 | |
|
|
子要素 | |
なし |
|
メモ | |
<use> 要素に続けて「プロパティ/値」のペアを記述し、<filter> 要素または <case> 子要素の match 属性で一致が検出されない場合のブラウザ機能コンポーネントのデフォルトのプロパティを指定します。この使用法は、<browserCaps> 要素のエントリで説明します。 |
|
<filter> | |
<filter match=string> property1=value property2=value propertyN=value </filter> < filter match=string> <filter match=string with=expressionToSearch> property1=value property2=value propertyN=value </filter> </filter> < filter> <case match=string> property1=value property2=value propertyN=value </case> <case match=string> property1=value property2=value propertyN=value </case> </filter> |
|
<use> 要素で指定されたサーバー変数を検索するための正規表現のパターン、またはそれ以外の任意の表現を指定します。<browserCaps> 要素には、複数の <filter> 要素を含めることができます。また、それぞれの <filter> 要素には、<case> 要素や別の <filter> 要素を含めることができます。<filter> 要素に一致させるためのプロパティの割り当ては、割り当ての順序とは無関係にすべて実行されます。 |
|
スコープ | |
任意 |
|
属性 | |
|
|
子要素 | |
<case> |
|
メモ | |
<filter> 要素はネストできるので、情報のサブセットを非常に柔軟に配置できます。たとえば、"machine.config" 内のデフォルトの <browserCaps> 要素に <filter> 要素をネストして、HTTP_USER_AGENT サーバー変数に格納されているブラウザのメジャーバージョンおよびマイナーバージョンの両方を指定します。このようにすると、ブラウザのマイナーバージョン (4.x の x など) ごとに異なる特定のプロパティを割り当てることができます。 |
|
<case> | |
<case match=string> property1=value property2=value propertyN=value </case> | >|
1 つの条件のみと一致する条件分岐のグループの中から、プロパティの割り当てが実行される条件を 1 つ指定します。特定の <filter> 要素内の、最初に一致した <case> 要素のみが実行されます。残りの要素は無視されます。 |
|
スコープ | |
任意 |
|
属性 | |
|
|
子要素 | |
なし |
|
メモ | |
この要素は、一致するアイテムを 1 つだけにしなければならない場合に便利です。たとえば、"machine.config" にあるデフォルトの <browserCaps> の構成では、<case> 要素を使用して win16 属性および win32 属性のプラットフォームを割り当てます。 |
|
<clientTarget> | |
<clientTarget> <add alias=aliasName userAgent=userAgentString /> <remove alias=aliasName /> <clear /> </clientTarget> | |
指定したブラウザのユーザーエージェント文字列に対するエイリアスを割り当てます。このエイリアスは、表示するコンテンツの種類を決定するときに ASP.NET サーバーコントロールで使用されます。 |
|
スコープ | |
任意 |
|
属性 | |
なし |
|
子要素 | |
|
|
例 | |
次の例は、デフォルトの <clientTarget> 要素のものです。 |
|
<clientTarget> <add alias="ie5" userAgent="Mozilla/4.0 (compatible; MSIE 5.5; Windows NT 4.0)" /> <add alias="ie4" userAgent="Mozilla/4.0 (compatible; MSIE 4.0; Windows NT 4.0)" /> <add alias="uplevel" userAgent="Mozilla/4.0 (compatible; MSIE 4.0; Windows NT 4.0)" /> <add alias="downlevel" userAgent="Unknown" /> </clientTarget> |
|
メモ | |
この要素は主に、組み込み型の ASP.NET サーバーコントロールによって使用されます。したがって、これらのコントロールで上位レベルのコンテンツが表示されるように、既存のエイリアスは変更しないでください。 |
|
<compilation> | |
<compilation batch=boolean batchTimeout=numSeconds debug=boolean defaultLanguage=languageAlias explicit=boolean maxBatchSize=maxPages maxBatchGeneratedFileSize=maxSize numRecompilesBeforeAppRestart=numRecompiles strict=boolean tempDirectory=dirName > <compilers> <compiler language=languageAlias extension=fileExt type=typeName warningLevel=number compilerOptions=optionString /> </compilers> <assemblies> <add assembly=assemblyName /> <remove assembly=assemblyName /> <clear /> </assemblies> </compilation> | |
ASP.NET アプリケーションのコンパイルオプションを構成する属性および子要素を指定します。すべての属性は省略可能です。 |
|
スコープ | |
任意 |
|
属性 | |
|
|
子要素 | |
<assemblies>、<compilers> |
|
例 | |
次の例は、Visual Basic .NET の Option Strict コンパイラオプションを有効にして、バッチコンパイルを無効にします。 |
|
<configuration> <system.web> <compilation batch="false" strict="true"> </compilation> </system.web> </configuration> |
|
メモ | |
修正を行う前に、この要素を変更することで生じる影響を把握しておいてください。たとえば、debug 属性を True に設定するとパフォーマンスが大幅に低下します。strict 属性を True に設定することで、暗示的なデータタイプ変換に起因するバグの発生は抑えられますが、コードの開発中に発生するコンパイルエラーの数は増加します。 |
|
<assemblies> | |
<assemblies> <add assembly=assemblyInfo /> <remove assembly=assemblyInfo /> <clear /> </assemblies> | |
ASP.NET ページを動的にコンパイルするときに参照およびリンクされるアセンブリを追加または削除します。動的なコンパイルの間、mscorlib、System、System.Drawing、System.EnterpriseServices、System.Web、System.Data、System.Web.Services、および System.Xml の各アセンブリがデフォルトで参照されます。アプリケーションディレクトリの bin サブディレクトリに配置されているアセンブリも参照されます。 |
|
スコープ | |
任意 |
|
属性 | |
なし |
|
子要素 | |
|
|
例 | |
次の例は、動的にコンパイルするアセンブリのリストにアセンブリ System.Web.Mobile を追加する <add> 要素を示します。この要素は Mobile Internet Toolkit で使用されます。 |
|
<assemblies> <add assembly="System.Web.Mobile, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" /> </assemblies> |
|
メモ | |
<add> 要素でアスタリスク (*) をワイルドカードとして使用すると、アプリケーションのプライベートアセンブリキャッシュにあるすべてのアセンブリが、動的なコンパイル中にリンクされるアセンブリのリストに追加されます。このキャッシュのデフォルトの場所は、アプリケーションの bin サブディレクトリです。アスタリスクを設定することで、これらのアセンブリのすべてのメンバーをアプリケーションのすべてのページで自動的に利用できるようになります。 |
|
<compilers> | |
<compilers> <compiler language=languageAlias extension=fileExt type=typeName warningLevel=number compilerOptions=optionString /> </compilers> | |
<compiler> 要素が含まれます。ASP.NET で使用する特定のコンパイラの構成オプションをそれぞれの要素で定義します。 |
|
スコープ | |
任意 |
|
属性 | |
なし |
|
子要素 | |
<compiler> |
|
メモ | |
ASP.NET では、<compilers> 要素および <compiler> 要素が導入されたことで、<compiler> 要素を新たに追加するだけで新しい .NET 言語に対するサポートが簡単に追加されます。この要素には言語名のエイリアス、言語のクラスファイルの拡張子、および言語コンパイラの種類に関する情報を指定します。 |
|
<compiler> | |
<compiler language=languageAlias extension=fileExt type=typeName warningLevel=number compilerOptions=optionString /> |
|
言語に対する構成オプションを指定します。 |
|
スコープ | |
任意 |
|
属性 | |
|
|
子要素 | |
なし |
|
メモ | |
"machine.config" の <compilers> 要素は、<compilers> 要素が適切に使用されている一例です。この構成セクションを確認して、Visual Basic .NET、C#、および JScript .NET コンパイラの構成方法を参照してください。 |
|
<customErrors> | |
<customErrors defaultRedirect=Url mode=mode > <error statusCode=httpStatusCode redirect=Url /> </customErrors> |
|
ASP.NET アプリケーションで未処理例外が検出された場合に、ユーザーのリダイレクト先となるページを指定します。デフォルトのエラーページ以外に、特定の HTTP エラーコード用のエラーページを指定できます。 |
|
スコープ | |
任意 |
|
属性 | |
|
|
子要素 | |
<error> |
|
例 | |
次の例は、未処理例外が発生したときに、リモートのクライアントに表示されるデフォルトのページを構成します。 |
|
<configuration> <system.web> <customErrors defaultRedirect="Error.aspx" /> </system.web> </configuration> |
|
メモ | |
mode 属性を RemoteOnly に設定した場合は、ページを実行しているローカルのコンピュータからしか詳細なエラー情報を参照できません。リモート要求は、発生したエラーのステータスコードに対して構成されているカスタムエラーページがある場合はそれを返します。 |
|
エラー発生時に ASP.NET によって提供されるデバッグ情報を参照する場合は、mode 属性を Off に設定する必要があります。 |
|
<error> | |
<error statusCode=httpStatusCode redirect=Url /> | |
特定の HTTP ステータスコードのリダイレクトを処理するカスタムエラーページを指定します。 |
|
スコープ | |
任意 |
|
属性 | |
|
|
子要素 | |
なし |
|
例 | |
次の例は、404 エラーに対するカスタムエラーページ、および前の例で構成したデフォルトのエラーページを構成します。 |
|
<configuration> <system.web> <customErrors defaultRedirect="Error.aspx"> <error statusCode="404" redirect="My404ErrorPage.aspx"/> </customErrors> </system.web> </configuration> |
|
メモ | |
カスタムエラーページは、ユーザーに未加工のエラーメッセージを表示しない適切な方法であり、おそらくそれ以上に役立つメッセージも表示できます。ただし、適切な例外処理の代わりにはなりません。エラーがカスタムエラーページに送信されると、エラーからの完全な回復はより難しくなり、ユーザーエクスペリエンスが低下する可能性があります。 |
|
<globalization> | |
<globalization requestEncoding=encodingString responseEncoding=encodingString fileEncoding=encodingString culture=cultureString uiCulture=cultureString /> |
|
エンコードおよびカルチャーの設定を構成する属性を示します。要求、応答、およびファイルの国際化を実現するためのエンコードの基準として、これらの属性を使用します。 |
|
スコープ | |
任意 |
|
属性 | |
|
|
子要素 | |
なし |
|
例 | |
次の例は、"web.config" でデフォルトの <globalization> 設定がどのように構成されているかを示しています。 |
|
<configuration> <system.web> <globalization requestEncoding="utf-8" responseEncoding="utf-8" /> </system.web> </configuration> |
|
メモ | |
有効なカルチャー文字列の一覧は、.NET Framework マニュアルの System.Globalization.CultureInfo クラスに関する部分に記載されています。 |
|
<httpHandlers> | |
<httpHandlers> <add verb=httpVerbs path=pathInfo type=typeInfo validate=boolean /> <remove verb=httpVerbs path=pathInfo /> <clear /> </httpHandlers> | |
指定した HTTP の動詞とファイルの種類またはパスに対して要求の処理を指定する HttpHandlers を追加または削除します。ASP.NET 自体は ".aspx" ファイルと ".asmx" ファイルの HttpHandler として設定されています。HttpHandlers は、"global.asax" などの他の種類の ASP.NET ファイルのソースコードのダウンロードを防ぐために使用されます。 |
|
スコープ | |
任意 |
|
属性 | |
なし |
|
子要素 | |
|
|
例 | |
次の例は、ファイル拡張子 .aspnetian のカスタム HttpHandler を構成します。 |
|
<configuration> <system.web> <HttpHandlers> <add verb="*" path="*.aspnetian" type="aspnetian.aspnetianHandler" /> </HttpHandlers> </system.web> </configuration> |
|
メモ | |
上の例を正しく動作させるには、ファイル拡張子 .aspnetian を ASP.NET ISAPI ハンドラーにマップする必要があります。マップしない場合は、要求がカスタム HttpHandler に渡されません。第 9 章では、ASP.NET ISAPI ハンドラーに新たにファイルの種類をマップする処理について、操作手順を示しながら説明しています。 |
|
<httpModules> | |
<httpModules> <add name=moduleName type=typeInfo /> <remove name=moduleName /> <clear /> </httpModules> | |
HttpModules を追加または削除します。HttpModules は、すべてのアプリケーション要求の処理に関与する特別なクラスです。ASP.NET の認証および権限の機能と同様に、ASP.NET のキャッシュ機能およびセッション状態の両方が HttpModules として実装されます。 |
|
スコープ | |
任意 |
|
属性 | |
なし |
|
子要素 | |
|
|
例 | |
次の例は、セッション状態プロバイダの HttpModule を削除します。HttpModule を使用していない場合は便利です。 |
|
<configuration> <system.web> <httpModules> <remove name="Session" /> </httpModules> </system.web> </configuration> |
|
メモ | |
セッション状態モジュールや認証モジュールなど、特定の HttpModule を使用していない場合は、<remove> 要素を使用してアプリケーションの "web.config" ファイルからこれらの HttpModules を削除すると、オーバーヘッドを節約できる場合があります。 |
|
<httpRuntime> | |
<httpRuntime appRequestQueueLimit=numRequests executionTimeout=numSeconds maxRequestLength=numKBytes minFreeLocalRequestFreeThreads=numThreads minFreeThreads=numThreads useFullyQualifiedRedirectUrl=boolean /> | |
ASP.NET HTTP ランタイムの設定を構成する属性を記述します。 |
|
スコープ | |
任意 |
|
属性 | |
|
|
子要素 | |
なし |
|
例 | |
次の例は、クライアントサイドのリダイレクト URL を強制的に絶対パスで設定します。これは、Microsoft Mobile Internet Toolkit で提供される一部のモバイルコントロールで必要な設定です。 |
|
<configuration> <system.web> <httpRuntime useFullyQualifiedRedirectUrl="true" /> </system.web> </configuration> |
|
メモ | |
maxRequestLength は最も一般的にカスタマイズされる属性の 1 つです。4MB というサイズは、ファイルをアップロードする必要のあるサイトにとっては厳しい制限となるサイズです。ただし、この値を増加させる場合は注意が必要です。必要な最大ファイルサイズを超えて値を増加させないでください。値を大きくしすぎると、サイトがサービス拒否攻撃に対して脆弱になります。 |
|
<identity> | |
<identity impersonate=boolean userName=string password=string /> | |
要求の偽装を有効にするかどうか、ASP.NET ワーカープロセスからの要求に使用する ID、およびその ID に対するパスワードを指定します。 |
|
スコープ | |
任意 |
|
属性 | |
|
|
子要素 | |
なし |
|
例 | |
次の例は、IIS によって認証されたログインユーザーの偽装を有効にします。 |
|
<configuration> <system.web> <identity impersonate="true" userName="" /> </system.web> </configuration> |
|
メモ | |
password 属性は、読み取り可能なテキストでパスワードを保存するため、この機能を使用する場合は慎重に検討してください。パスワードのような機密情報をテキストファイルに保存すると、セキュリティ上の危険を伴う場合があります。 |
|
<machineKey> | |
<machineKey validationKey="autogenerate|value" decryptionKey="autogenerate|value" validation="SHA1|MD5|3DES" /> | |
フォーム認証 Cookie の検証および復号化に使用する暗号化キーの設定を指定します。 |
|
スコープ | |
すべて |
|
属性 | |
|
|
子要素 | |
なし |
|
メモ | |
Web ファーム環境では、ファームのすべてのサーバー間で validationKey 値および decryptionKey 値が同期されていることが重要です。同期されていない場合、フォーム認証のエラー、ViewState エラー、またはセッション状態の問題が発生することがあります。 |
|
<pages> | |
<pages buffer=boolean enableSessionState="true|false|ReadOnly" enableViewState=boolean enableViewStateMac=boolean autoEventWireup=boolean smartNavigation=boolean pageBaseType=typeInfo userControlBaseType=typeInfo /> | |
ASP.NET ページおよびユーザーコントロールのデフォルト設定の構成に使用する属性を記述します。@ Page ディレクティブまたは @ Control ディレクティブの属性によって、この要素の設定が上書きされる場合があります。 |
|
スコープ | |
任意 |
|
属性 | |
|
|
子要素 | |
なし |
|
例 | |
次の例は、ページレベルでセッション状態と ViewState の両方を無効にします。 |
|
<configuration> <system.web> <pages enableSessionState="false" enableViewState="false" /> </system.web> </configuration> |
|
メモ | |
<pages> 要素は、アプリケーションのページに対するデフォルトをアプリケーションレベルまたはフォルダレベルで設定する場合に便利です。一例として、セッション状態へのアクセスを必要としないページを別個のフォルダに配置し、<pages> 要素を使用してそのフォルダのセッション状態を無効にするという使用法が考えられます。この場合、EnableSessionState が True に設定されているアプリケーションのページをユーザーが要求するまでは、そのユーザーのセッションは作成されません。 |
|
EnableViewStateMac の初期設定値は True です。MAC チェックでは、ViewState の非表示フィールドの暗号化されたバージョンを作成するために <machineKey> 要素の設定が使用されます。したがって、この「メモ」の内容を覚えておくことが重要です。Web ファームを使用する場合、ファーム内の各サーバーの <machineKey> 設定が一致している必要があります。設定が一致していない場合、ユーザーの最初の要求が 1 つのサーバーで処理され、それに続くポストバックが <machineKey> の設定が異なる別のサーバーで処理されるため、MAC チェックが失敗します。 |
|
<processModel> | |
<processModel enable=boolean timeout="Infinite"|HH:MM:SS idleTimeout="Infinite"|HH:MM:SS shutdownTimeout="Infinite"|HH:MM:SS requestLimit=numRequests requestQueueLimit="Infinite"|numRequests restartQueueLimit="Infinite"|numRequests memoryLimit=percentMemory cpuMask=cpuNumBitMask webGarden=boolean userName=username password=password logLevel="All|None|Errors" clientConnectedCheck=HH:MM:SS comAuthenticationLevel="Default|None|Connect|Call|Pkt| PktIntegrity|PktPrivacy" comImpersonationLevel="Default|Anonymous|Identify|Impersonate| Delegate" responseRestartDeadlockInterval="Infinite"|HH:MM:SS responseDeadlockInterval="Infinite"|HH:MM:SS maxWorkerThreads=numThreads maxIoThreads=numThreads serverErrorMessageFile=fileName /> |
|
IIS 5 の ASP.NET ワーカープロセスを構成する属性を記述します。 |
|
スコープ | |
コンピュータのみ |
|
属性 | |
|
|
子要素 | |
なし |
|
メモ | |
IIS 6 のネイティブモードでは、<processModel> 要素の設定は無視されます。 |
|
<processModel> 要素の設定は、マネージコードではなく、aspnet_isapi.dll アンマネージハンドラーによって読み取られ、適用されます。このハンドラーは、aspnet_wp.exe マネージワーカープロセスに要求を渡します。そのため、<processModel> 要素への変更は、IIS の再起動後に適用されます。 |
|
<securityPolicy> | |
<securityPolicy> <trustLevel name=trustLevelName policyFile=fileName /> </securityPolicy/> | |
<trust> 要素によって使用される、信頼名のセキュリティポリシーファイルへのマップを構成します。セキュリティポリシーファイルには、その信頼レベルに固有のコードアクセスセキュリティ権限を構成する要素を記述します。<securityPolicy> には、<trustLevel> 要素を含めることができます。 |
|
スコープ | |
コンピュータ、アプリケーション |
|
属性 | |
なし |
|
子要素 | |
|
|
例 | |
次の例は、"machine.config" のデフォルトの <securityPolicy> 要素のものです。 |
|
<securityPolicy> <trustLevel name="Full" policyFile="internal" /> <trustLevel name="High" policyFile="web_hightrust.config" /> <trustLevel name="Low" policyFile="web_lowtrust.config" /> <trustLevel name="None" policyFile="web_notrust.config" /> </securityPolicy> |
|
メモ | |
特定のアプリケーションに対して、適用されているコードアクセスセキュリティ権限を修正する場合は、新しい CAS ポリシーファイルを作成し、<trustLevel> 要素を使用してそのファイルをカスタム信頼レベルにマップすることができます。アプリケーションに新しいセキュリティポリシーを実装するには、"web.config" ファイルに <trust> 要素を追加し、その要素を使用して名前によりマップしたポリシーファイルを指定します。 |
|
<sessionState> | |
<sessionState mode="Off|Inproc|StateServer|SQLServer" cookieless=boolean timeout=numMinutes stateNetworkTimeout=numSeconds stateConnectionString="tcpip=server:port" sqlConnectionString=connString/> | |
スコープ | |
コンピュータ、アプリケーション |
|
属性 | |
初期設定値は |
|
子要素 | |
なし |
|
例 | |
次の例は、SQL Server の Cookie を使用しない設定で実行するようにセッション状態を構成します。 |
|
<configuration> <system.web> <sessionState mode="SQLServer" cookieless="true" sqlConnectionString="data source=myServer;trusted_ connection=true" /> </system.web> </configuration> |
|
メモ | |
信頼関係接続を行う SQL Server モードを使用するには、ASP.NET ワーカープロセスのアカウント ID が SQL Server データベースにログインしている必要があります。また、ASPState データベースと TempDB データベースに対するアクセス許可を持っている必要があります。信頼関係接続を使用できない場合は、状態データベースにアクセスする特別なアカウントを作成し、そのアカウントを sqlConnectionString 属性に使用する必要があります。 |
|
out-of-process セッション状態モードのいずれかを使用する場合は、@ Page ディレクティブの EnableSessionState 属性を使用して、セッション状態を使用しないアプリケーションのページに対するセッション状態を無効にすることをお勧めします。有効にしたままだと、使用されることのないセッション状態情報を取得するために、これらのページからコンピュータ間での不必要な呼び出しが行われます。セッションデータの読み取りは行うが変更は行わないページがある場合、EnableSessionState 属性を ReadOnly に設定すると、更新されたセッションデータを保存するためのコンピュータ間の呼び出しを回避することができます。 |
|
<trace> | |
<trace enabled=boolean localOnly=boolean pageOutput=boolean requestLimit=numRequests traceMode="SortByTime|SortByCategory" /> | |
スコープ | |
任意 |
|
属性 | |
|
|
子要素 | |
なし |
|
例 | |
次の例は、アプリケーションレベルでトレースを有効にします。 |
|
<configuration> <system.web> <trace enabled="true" /> </system.web> </configuration> |
|
メモ | |
第 10 章では、ASP.NET のトレース機能の使用方法に関する概要を説明します。 |
|
<trust> | |
<trust level="Full|High|Low|None" originUrl=URL /> | |
<securityPolicy> 要素の <trustLevel> 子要素を使用して作成された名前付きの信頼レベルをコンピュータ、サイト、またはアプリケーションに割り当てます。 |
|
スコープ | |
コンピュータ、アプリケーション |
|
属性 | |
|
|
子要素 | |
なし |
|
例 | |
次の例は、カスタム信頼レベルに基づいて、アプリケーションの CAS アクセス許可を設定します。 |
|
<configuration> <system.web> <trust level="myTrustLevel" /> </system.web> </configuration> |
|
メモ | |
この要素を使用する前に、カスタムのセキュリティポリシーのマップを使用した場合にセキュリティに及ぼす影響を理解しておいてください。アクセス許可の設定を誤ると、アプリケーションに重大な問題を引き起こす場合があります。 |
|
<location> | |
<location path=pathToConfigure allowOverride=boolean > <system.web> <! -- Configuration settings -- > </system.web> </location> | |
"machine.config" または "web.config" の設定が子の構成ファイル内で上書きされないようにします。親フォルダの構成ファイルにある特定のファイルまたはフォルダの設定を構成するためにも使用できます。 |
|
スコープ | |
任意 |
|
属性 | |
|
|
子要素 | |
<system.web> |
|
例 | |
次の例を "machine.config" で使用した場合、コンピュータ上のすべてのアプリケーションで Windows 認証が強制的に使用されます。 |
|
<configuration> <location allowOverride="false"> <system.web> <authentication mode="Windows"> </system.web> </location> <system.web> <!-- Other configuration settings --> </system.web> </configuration> |
|
メモ | |
このタグを使用すると、構成を広範囲に制御できます。すべてのアプリケーションで 1 つの認証方法を強制する以外に、path 属性を使用して、アプリケーションルートの "web.config" ファイルの複数の子フォルダまたは子ファイルを構成できます。この構成を使用すると、大規模アプリケーションの管理に多数の子 "web.config" ファイルを使用する必要がなくなります。 |
|