Visual Studio 2010 でアプリを開発しています。アプリは常にインターネットに接続されています。This is a full trust application
[セキュリティ] タブで有効にする必要がありますか?
はいの場合、それは正確にはどういう意味ですか? msdn のドキュメントを読んでいましたが、理解できません。この機能をいつ使用するかについての短い行が必要です。
Visual Studio 2010 でアプリを開発しています。アプリは常にインターネットに接続されています。This is a full trust application
[セキュリティ] タブで有効にする必要がありますか?
はいの場合、それは正確にはどういう意味ですか? msdn のドキュメントを読んでいましたが、理解できません。この機能をいつ使用するかについての短い行が必要です。
インターネット接続のセキュリティには影響しませんが、.NET フレームワークがアプリケーションを処理する方法に影響します。したがって、危険なくアクティブ化できますが、可能であれば、アプリケーションがセキュリティを強化するために必要なアクセスレベルをコードで宣言する必要があります。詳細を説明するには:
完全な信頼とは、.NET フレームワークが提供するすべての権利をアプリケーションが必要とすることを意味します。開発者は、アプリケーションを実行するために必要な信頼レベルを宣言します。これは「コード アクセス セキュリティ」として知られています。 コード アクセス セキュリティとは、コードが成功するために必要な操作の種類を属性を介してコンパイラに伝えることを意味します。
次に、.NET フレームワークは、アプリケーションにどの程度の信頼を付与する必要があるかを見積もります。たとえば、イントラネットの外部のネットワーク共有を介してアクセスできるリモート コンピューターにアプリケーションを展開する場合*)、.NET Framework はそれを提供します。 「完全な信頼」未満。これは「エビデンス ベース」のセキュリティ モデルとして知られており、いわゆるマネージ コードを通じて実装されます。
マネージ コードとは、.NET アプリケーションが "Roslyn" コンパイラによって MSIL (マイクロ ソフ トの中間言語) にコンパイルされ、次に"ジャストインタイム" (つまり、ネイティブを作成することを選択しない限り、それを実行するとき) にコンパイルされることを意味します。実行前にNGEN を介して明示的にコード化) を、 "RyuJIT"-Compilerによって CPU 固有の機械語に変換します。これにより、追加の抽象化レイヤーを確立できます。これにより、.NET Framework がコードの動作を制御し、それを許可するか、そうでない場合はセキュリティ例外をスローできるようになります。
C# または VB.NET のいずれかの言語で .NET フレームワーク用に作成するすべてのコードは、既定のマネージド コードごとです。ただし、アンマネージ コード(.NET 用語では "アンセーフ コード" とも呼ばれます) を埋め込みたい (非常にまれな) 状況があります。1 つの方法は、コードに「安全でない」セクションを作成することです (完全を期すためにここで言及するだけです - つまり、ソース コードで遭遇した可能性がある場合)。
前述したように、属性を介してコードの動作を指定しますが、ローカル コンピューターに適用される規則を変更して、.NET セキュリティ設定を介してこの動作を変更することもできます。 通常、アプリケーションが必要とする権限をできるだけ正確に指定し、できるだけ制限することをお勧めします。
興味がある場合は、ここで詳細を見つけることができます: .NET Framework セキュリティ モデルの探索
*) ヒントをありがとう、ダミアン! 実際、フレームワークの以前のバージョンでは、.NET 4 デスクトップとローカル イントラネット接続が完全に信頼されていたため、ネットワーク (ネットワーク共有) 上のリソースに与える信頼は低かった.