Asp.net-configuration
ASP.NET-構成
ASP.NETアプリケーションの動作は、構成ファイルのさまざまな設定の影響を受けます。
- machine.config
- web.config
machine.configファイルには、サポートされているすべての設定のデフォルト値とマシン固有の値が含まれています。 マシンの設定はシステム管理者によって制御され、通常、アプリケーションにはこのファイルへのアクセス権が付与されません。
ただし、アプリケーションは、そのルートフォルダにweb.configファイルを作成することにより、デフォルト値をオーバーライドできます。 web.configファイルはmachine.configファイルのサブセットです。
アプリケーションに子ディレクトリが含まれている場合、各フォルダーのweb.configファイルを定義できます。 各構成ファイルのスコープは、トップダウン方式で階層的に決定されます。
web.configファイルは、上位レベルで定義された設定をローカルで拡張、制限、または上書きできます。
Visual Studioは、プロジェクトごとにデフォルトのweb.configファイルを生成します。 アプリケーションはweb.configファイルなしで実行できますが、web.configファイルなしでアプリケーションをデバッグすることはできません。
次の図は、Webサービスチュートリアルで使用されるサンプル例のソリューションエクスプローラーを示しています。
このアプリケーションには、2つのプロジェクト、つまりWebサービスとWebサービスを呼び出すWebサイトの2つのweb.configファイルがあります。
web.configファイルには、ルートノードとして構成要素があります。 この要素内の情報は、構成セクションハンドラー宣言領域と構成セクション設定領域の2つの主要な領域にグループ化されます。
次のコードスニペットは、構成ファイルの基本的な構文を示しています。
<configuration>
<!-- Configuration section-handler declaration area. -->
<configSections>
<section name="section1" type="section1Handler"/>
<section name="section2" type="section2Handler"/>
</configSections>
<!-- Configuration section settings area. -->
<section1>
<s1Setting1 attribute1="attr1"/>
</section1>
<section2>
<s2Setting1 attribute1="attr1"/>
</section2>
<system.web>
<authentication mode="Windows"/>
</system.web>
</configuration>
構成セクションハンドラーの宣言
構成セクションハンドラーは、<configSections>タグ内に含まれています。 各構成ハンドラーは、ファイル内に含まれる構成セクションの名前を指定し、いくつかの構成データを提供します。 次の基本構文があります。
<configSections>
<section/>
<sectionGroup/>
<remove/>
<clear/>
</configSections>
次の要素があります。
- クリア-継承されたセクションおよびセクショングループへのすべての参照を削除します。
- 削除-継承されたセクションおよびセクショングループへの参照を削除します。
- セクション-構成セクションハンドラーと構成要素の間の関連付けを定義します。
- セクショングループ-構成セクションハンドラーと構成セクション間の関連付けを定義します。
アプリケーションの設定
アプリケーション設定により、読み取り専用アクセス用にアプリケーション全体の名前と値のペアを保存できます。 たとえば、カスタムアプリケーション設定を次のように定義できます。
<configuration>
<appSettings>
<add key="Application Name" value="MyApplication"/>
</appSettings>
</configuration>
たとえば、書籍の名前とそのISBN番号を保存することもできます。
<configuration>
<appSettings>
<add key="appISBN" value="0-273-68726-3"/>
<add key="appBook" value="Corporate Finance"/>
</appSettings>
</configuration>
接続文字列
接続文字列は、Webサイトで使用可能なデータベース接続文字列を示します。 例えば:
<connectionStrings>
<add name="ASPDotNetStepByStepConnectionString"
connectionString="Provider=Microsoft.Jet.OLEDB.4.0;
Data Source=E:\\projects\datacaching\/
datacaching\App_Data\ASPDotNetStepByStep.mdb"
providerName="System.Data.OleDb"/>
<add name="booksConnectionString"
connectionString="Provider=Microsoft.Jet.OLEDB.4.0;
Data Source=C:\ \databinding\App_Data\books.mdb"
providerName="System.Data.OleDb"/>
</connectionStrings>
System.Web要素
system.web要素は、ASP.NET構成セクションのルート要素を指定し、ASP.NET Webアプリケーションを構成し、アプリケーションの動作を制御する構成要素を含みます。
一般的なアプリケーションで調整する必要がある構成要素のほとんどを保持します。 要素の基本的な構文は次のとおりです。
<system.web>
<anonymousIdentification>
<authentication>
<authorization>
<browserCaps>
<caching>
<clientTarget>
<compilation>
<customErrors>
<deployment>
<deviceFilters>
<globalization>
<healthMonitoring>
<hostingEnvironment>
<httpCookies>
<httpHandlers>
<httpModules>
<httpRuntime>
<identity>
<machineKey>
<membership>
<mobileControls>
<pages>
<processModel>
<profile>
<roleManager>
<securityPolicy>
<sessionPageState>
<sessionState>
<siteMap>
<trace>
<trust>
<urlMappings>
<webControls>
<webParts>
<webServices>
<xhtmlConformance>
</system.web>
次の表は、 system.web 要素の一般的なサブ要素の一部を簡単に説明しています。
匿名識別
これは、許可が必要なときに認証されていないユーザーを識別するために必要です。
認証
認証サポートを構成します。 基本的な構文は次のとおりです。
<authentication mode="[Windows|Forms|Passport|None]">
<forms>...</forms>
<passport/>
</authentication>
承認
許可サポートを構成します。 基本的な構文は次のとおりです。
<authorization>
<allow .../>
<deny .../>
</authorization>
キャッシング
キャッシュ設定を構成します。 基本的な構文は次のとおりです。
<caching>
<cache>...</cache>
<outputCache>...</outputCache>
<outputCacheSettings>...</outputCacheSettings>
<sqlCacheDependency>...</sqlCacheDependency>
</caching>
CustomErrors
カスタムエラーメッセージを定義します。 基本的な構文は次のとおりです。
<customErrors defaultRedirect="url" mode="On|Off|RemoteOnly">
<error. . ./>
</customErrors>
展開
展開に使用される構成設定を定義します。 基本的な構文は次のとおりです。
<deployment retail="true|false"/>
HostingEnvironment
ホスティング環境の構成設定を定義します。 基本的な構文は次のとおりです。
<hostingEnvironment idleTimeout="HH:MM:SS" shadowCopyBinAssemblies="true|false"
shutdownTimeout="number" urlMetadataSlidingExpiration="HH:MM:SS"/>
身元
アプリケーションのIDを構成します。 基本的な構文は次のとおりです。
<identity impersonate="true|false" userName="domain\username"
password="<secure password>"/>
MachineKey
フォーム認証Cookieデータの暗号化と復号化に使用するキーを構成します。
また、ビューステートデータに対してメッセージ認証チェックを実行し、認証チケットを作成する検証キーを構成できます。 基本的な構文は次のとおりです。
<machineKey validationKey="AutoGenerate,IsolateApps" [String]
decryptionKey="AutoGenerate,IsolateApps" [String]
validation="HMACSHA256" [SHA1 | MD5 | 3DES | AES | HMACSHA256 |
HMACSHA384 | HMACSHA512 | alg:algorithm_name]
decryption="Auto" [Auto | DES | 3DES | AES | alg:algorithm_name]
/>
会員
これにより、ユーザーアカウントの管理と認証のパラメーターが構成されます。 基本的な構文は次のとおりです。
<membership defaultProvider="provider name"
userIsOnlineTimeWindow="number of minutes" hashAlgorithmType="SHA1">
<providers>...</providers>
</membership>
ページ数
ページ固有の構成を提供します。 基本的な構文は次のとおりです。
<pages asyncTimeout="number" autoEventWireup="[True|False]"
buffer="[True|False]" clientIDMode="[AutoID|Predictable|Static]"
compilationMode="[Always|Auto|Never]"
controlRenderingCompatibilityVersion="[3.5|4.0]"
enableEventValidation="[True|False]"
enableSessionState="[True|False|ReadOnly]"
enableViewState="[True|False]"
enableViewStateMac="[True|False]"
maintainScrollPositionOnPostBack="[True|False]"
masterPageFile="file path"
maxPageStateFieldLength="number"
pageBaseType="typename, assembly"
pageParserFilterType="string"
smartNavigation="[True|False]"
styleSheetTheme="string"
theme="string"
userControlBaseType="typename"
validateRequest="[True|False]"
viewStateEncryptionMode="[Always|Auto|Never]" >
<controls>...</controls>
<namespaces>...</namespaces>
<tagMapping>...</tagMapping>
<ignoreDeviceFilters>...</ignoreDeviceFilters>
</pages>
プロフィール
ユーザープロファイルパラメーターを構成します。 基本的な構文は次のとおりです。
<profile enabled="true|false" inherits="fully qualified type reference"
automaticSaveEnabled="true|false" defaultProvider="provider name">
<properties>...</properties>
<providers>...</providers>
</profile>
RoleManager
ユーザーロールの設定を構成します。 基本的な構文は次のとおりです。
<roleManager cacheRolesInCookie="true|false" cookieName="name"
cookiePath="/" cookieProtection="All|Encryption|Validation|None"
cookieRequireSSL="true|false " cookieSlidingExpiration="true|false "
cookieTimeout="number of minutes" createPersistentCookie="true|false"
defaultProvider="provider name" domain="cookie domain">
enabled="true|false"
maxCachedResults="maximum number of role names cached"
<providers>...</providers>
</roleManager>
セキュリティポリシー
セキュリティポリシーを構成します。 基本的な構文は次のとおりです。
<securityPolicy>
<trustLevel/>
</securityPolicy>
UrlMappings
元のURLを非表示にして、よりユーザーフレンドリーなURLを提供するマッピングを定義します。 基本的な構文は次のとおりです。
<urlMappings enabled="true|false">
<add.../>
<clear/>
<remove.../>
</urlMappings>
WebControls
クライアントスクリプトの共有場所の名前を提供します。 基本的な構文は次のとおりです。
<webControls clientScriptsLocation="String"/>
ウェブサービス
これにより、Webサービスが構成されます。