私の2.0 .netアプリケーションが、アセンブリに割り当てられたアクセス権を制限したときに実行される理由を知りたい。.NETアプリケーションを実行できるCASPolはなぜですか?
エンタープライズレベルで、特定のデジタル署名を持つアセンブリと一致する新しいコードグループを作成しました。コードグループは、関連付けられているアクセス許可セットのアクセス許可のみが使用されるように設定されており、さらに低いポリシーレベルは評価されません。
- UnmanagedCode、
- 環境
- FILEIO
- レジストリ
- 反射
I:
.NET 2.0 PermCalcを実行すると、私のアプリケーションは、次の権限が必要であると述べています私のカスタムコードグループに割り当てられましたアンマネージコードの許可ですが、それ以外のものはありません。
私のアプリケーションの最初の方法では上記のすべてのアクセス権が必要ですので、終了する前にユーザーに分かりやすいメッセージを表示することができます。
.NET 2.0コンフィグレーション「アセンブリの評価」ツールをアセンブリで実行すると、アプリケーションにはUnmanagedCodeパーミッションのみが与えられます。
しかし、私のアプリケーションを実行して実行すると、明らかにさまざまなFileIOとRegistryの操作が行われます。
私のアプリは、制限されたコードグループと一致するデジタル署名で署名されています。
誰でもこの動作の理由を説明することはできますか。
注:私の究極の目的は、ネットワーク共有から実行した場合、自分のアプリケーションがひどくクラッシュしないようにすることです。アセンブリの証拠ゾーンがMy_Computerであることを確認したいと思いますが、もはや.NET 3.5 SP1ではこれを行うことができません。 FullTrust On the LocalIntranet
ご協力いただきありがとうございます。
こんにちはニコール、ご返信ありがとうございます。私は誤解を招く私の質問で間違いを犯したことを理解しています。私のアプリケーションは実際には.Net 2.0アプリケーションです(3.5の前提条件を持つべきではありません)。私は実際に3.5 SP1のフレームワークがインストールされている。ユーザーは.NET 2.0しかインストールされていない可能性がありますが、ネットワーク共有から実行しようとしているため、このチェックを行う必要があります。この場合、アプリはちょうどクラッシュするので、もっと優雅にしたいと思います。上で概説したシナリオは、私のアプリケーションがクラッシュすると予想されるテスト状況でした....しかし、それはありません! –
私は32/64ビットclrについて今すぐチェックします。 –
ああ...今はもっと意味をなさない。私は、上記の条件の下で通過する需要のための別の可能な説明を追加するために私の答えを編集しました。 –