PowerTools SPREAD for ASP.NET 8.0J > 開発者の手引き > 製品の使用方法 > アプリケーションの配布 > Medium 信頼レベル環境への配置 |
ホスティング環境や共有サーバー環境では、ASP.NET Web アプリケーションを Medium 信頼レベル環境に配置しなければならない場合があります。
Medium 信頼レベル環境では、デフォルトでは逆シリアル化やリフレクションなどのアクセスは制限されます。さらに、Medium 信頼レベル環境で厳密な名前を持つアセンブリを利用するためには、アセンブリが AllowPartiallyTrustedCallers 属性を持つ必要があります。
本製品は AllowPartiallyTrustedCallers アセンブリ属性を持っていますが、アクセス制限されているシリアル化やリフレクションなどの処理を行っているため、Medium 信頼レベルで実行するためには信頼レベルのポリシーファイルを変更してアクセス許可を追加する必要があります。
|
アクセス権限を設定するためには、既存の信頼レベルのポリシーファイルを変更するか、Medium 信頼レベルをベースにしたカスタムポリシーファイルを作成します。既存の信頼レベルのポリシーファイルを変更すると、すべての Web アプリケーションは変更された権限と同じ信頼レベルで実行されます。Medium 信頼レベルのポリシーをベースにしたカスタムポリシーファイルを作成すると、個々のアプリケーションに異なる権限を設定することができます。
既存の信頼レベルのポリシーファイルにアクセス許可を追加するには、以下の手順に従います。
Medium 信頼レベルのポリシーをベースにしたカスタムポリシーファイルを作成してからアクセス許可を追加するには、以下の手順に従います。
<system.web> <trust level="CustomMedium" originUrl=""/> : <securityPolicy> <trustLevel name="CustomMedium" policyFile="web_mediumtrust_custom.config"/> </securityPolicy> : </system.web>
本製品をMedium 信頼レベル環境で実行するためには、信頼レベルのポリシーファイルにいくつかのアクセス許可を追加する必要があります。必要なアクセス許可は、次に示す通りです。
必要なアクセス許可 |
---|
シリアル化の許可 |
リフレクションの許可 |
アンマネージコード実行の許可 |
また、OLE DB データプロバイダを利用する場合、ファイルアクセスを行う場合には、それぞれ OleDbPermission および FileIOPermission のアクセス権限も追加する必要があります。
メモ: 信頼レベルのポリシーファイルファイルを変更する前に、「信頼レベルポリシーファイルの変更」トピックの手順を実行してください。 |
本製品は、ViewStateのシリアル化処理を行っています。シリアル化のアクセス許可を追加するには、以下の手順に従います。
<NamedPermissionSets> <PermissionSet class="NamedPermissionSet" version="1" Name="ASP.Net"> <IPermission class="SecurityPermission" version="1" Flags="Assertion, Execution, ControlThread, ControlPrincipal, RemotingConfiguration, SerializationFormatter"/> : </PermissionSet> </NamedPermissionSets>
本製品は、リフレクションを使用しています。リフレクションのアクセス許可を追加するには、以下の手順に従います。
<NamedPermissionSets> <PermissionSet class="NamedPermissionSet" version="1" Name="ASP.Net"> <IPermission class="ReflectionPermission" version="1" Unrestricted="true"/> : </PermissionSet> </NamedPermissionSets>
本製品は、Excelファイルのインポート/エクスポート処理にアンマネージドコードを使用しています。アンマネージコード実行のアクセス許可を追加するには、以下の手順に従います。
<NamedPermissionSets> <PermissionSet class="NamedPermissionSet" version="1" Name="ASP.Net"> <IPermission class="SecurityPermission" version="1" Flags="Assertion, Execution, ControlThread, ControlPrincipal, RemotingConfiguration, SerializationFormatter, UnmanagedCode"/> : </PermissionSet> </NamedPermissionSets>
Medium 信頼レベル環境ではデフォルトで OleDbPermission アクセスが制限されています。つまり、ADO.NET の OLE DB データプロバイダを使用してデータベースにアクセスできません。
OLE DB データプロバイダのアクセス許可を追加するには、以下の手順に従います。
<SecurityClasses>
<SecurityClass Name="OleDbPermission" Description="System.Data.OleDb.OleDbPermission, System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/> : </SecurityClasses>
<NamedPermissionSets> <PermissionSet class="NamedPermissionSet" version="1" Name="ASP.Net"> <IPermission class="OleDbPermission" version="1" Unrestricted="true"/> : </PermissionSet> </NamedPermissionSets>
Medium 信頼レベル環境ではデフォルトで FileIOPermission アクセスが制限されています。つまり、アプリケーションの仮想ディレクトリ階層にあるファイルにしかアクセスできません。アプリケーションの仮想ディレクトリの階層外のディレクトリへのファイルアクセス許可を追加するには、以下の手順に従います。
<NamedPermissionSets> <PermissionSet class="NamedPermissionSet" version="1" Name="ASP.Net"> <IPermission class="FileIOPermission" version="1" Read="$AppDir$;C:MyFolder" Write="$AppDir$" Append="$AppDir$" PathDiscovery="$AppDir$" /> : </PermissionSet> </NamedPermissionSets>