2

FullTrust権限セットを使用せずにネットワーク共有から.Net2.0アプリケーションを実行しようとしています。アセンブリに必要なアクセス許可だけを持つ新しいアクセス許可セットを作成し、それを共有パスのexeに割り当てたいと思います。これを行うことは可能ですか?私の限られた実験から、FullTrustなしではネットワーク共有からアプリケーションを動作させることができないことがわかりました。新しいパーマセットを作成してみました。また、Everythingやその他のパーマセットも試しましたが、どれも機能していないようです。誰かがこれを経験したことがありますか?

4

3 に答える 3

2

厳密な名前でアセンブリに署名し、厳密な名前の cas-policy を完全信頼に設定する必要があります。

厳密な名前で署名されたすべてのコードに FullTrust を設定する最も簡単な方法は次のとおりです。

caspol.exe -q -m -ag MyZone -strong -hex [HexCodeOfYourStrongName] -noname -noversion FullTrust -name MyCode -description "Code trust for my code"';

コードが複数のアセンブリに分割されている場合は、すべてのアセンブリがその厳密な名前で署名されている必要があります。SecurityPermission発信者のセキュリティが引き継がれるように、リンク要求で -Attributeを設定する必要がある場合があります。

[SecurityPermission(SecurityAction.LinkDemand, Flags = SecurityPermissionFlag.ControlPrincipal)]
于 2009-01-08T08:25:37.703 に答える
0

強力な名前のassmeblyFullTrustアクセス許可を与えることは良いことのように聞こえますが、残念ながら、私のアセンブリは、メインアセンブリに厳密な名前を付ける場合にも、厳密な名前が必要ないくつかのサードパーティのCOMDLLを参照しています。それなら、Shawnによって与えられたパスにFullTrustを与えることが最善の解決策だと思います:CasPol.exe -pp off -m -ag 1.2 -url file:// \ ShawnFa-Srv / Tools / * FullTrust

于 2009-01-08T10:40:28.057 に答える
0

.NET 3.5 より前では、そこから .NET アプリケーションを実行するには、共有を完全に信頼する必要があります。Shawn はこれについて次のように説明しています

.NET 3.5 では、この制限は「...デフォルトで FullTrust のセットを許可し、コンピューターから直接起動した場合と同じように動作させる」ことで克服されます (Shawn の別の投稿here から) 。

于 2009-01-08T08:19:49.010 に答える