2012-06-19 7 views
7

私はVisualスタジオ2010でアプリケーションを開発しています、私のアプリケーションは常にインターネットに接続されています。 [セキュリティ]タブでThis is a full trust applicationを有効にする必要がありますか?私が選択する必要があります:これは完全な信頼のアプリケーションです

「はい」の場合、正確にはどういう意味ですか?私はmsdnドキュメントを読んでいたが、私はそれを理解できない。私はこの機能をいつ使うべきかについて、短い行で何かを必要としています。

答えて

8

インターネット接続のセキュリティには影響しませんが、.NETフレームワークがアプリケーションをどのように処理するかは影響を受けます。だから、危険なく活動化することができますが、可能であれば、アプリケーションがセキュリティを改善するために必要なアクセスレベルをコードで宣言する必要があります。詳細を説明するには:

フル信頼は、.NETフレームワークが提供するすべての権限がアプリケーションに必要であることを意味します。開発者は、アプリケーションが実行するために必要な信頼レベルを宣言します。これは"コードアクセスセキュリティ"と呼ばれます。 コードアクセスセキュリティとは、コードが成功するために必要な操作の種類を属性によってコンパイラに伝えることを意味します。

.NETフレームワークは、アプリケーションがどの程度信頼されるべきかを見積もります。 たとえば、イントラネット*以外のネットワーク共有を介してアクセス可能なリモートコンピュータにアプリケーションを展開すると*)、 .NET Frameworkでは、「完全信頼」よりも低くなっています。これは「証拠に基づく」セキュリティモデルとして知られており、管理コードによって実装されているが実装されています。

マネージドコードは.NETアプリケーションがMSILにコンパイルされていることを意味します(icro M OFTのI ntermediate L anguage)と "ジャストインタイム"(すなわちちょうどあなたがそれを実行すると、 create native code explicitly via NGEN before executionを選択しない限り)CPU固有の機械語に変換します。これにより、追加の抽象レイヤーを確立することができます。これにより、.NET Frameworkは、コードが実行する操作を制御したり、セキュリティーの例外をスローすることができます。

C#またはVB.NET言語のいずれかで.NETフレームワーク用に記述したすべてのコードは、デフォルトのマネージコードごとです。しかし、アンマネージドコード(「安全でないコード」としても知られています)を.NETの用語で埋め込みたい(非常にまれな)状況があります。 1つの方法は、コード内に「安全でない」セクションを作成することです(ここでは完全性のためだけに言及しています。

前述のとおり、属性を使用してコードの内容を指定しますが、ローカルコンピュータに適用されるルールを変更して.NETセキュリティ設定を介してこの動作を変更することもできます。 通常は、アプリケーションに必要な権限を可能な限り正確に指定し、可能な限り制限することをお勧めします。あなたが興味を持っている場合

、あなたはここで詳細を見つけることができます。 Exploring the .NET Framework Security Model

*)あなたのヒント、ダミアンをありがとう!確かに、以前のバージョンのフレームワークでは、ネットワーク上のリソース(ネットワーク共有)の信頼性が低下し、.NET 4デスクトップとローカルイントラネット接続は完全な信頼を得ました。

+1

Re:ネットワーク共有 - [.NET 4](http://msdn.microsoft.com/en-us/library/ff527276)で変更されました。aspx): "デスクトップとローカルのイントラネットアプリケーションには完全な信頼が与えられます。" –

+0

この詳細な回答ありがとうございます –

関連する問題