1

Microsoft の厳密な名前のキー規則を使用してアセンブリをコンパイルし、"AllowPartiallyTrusted" とマークしました。

2 つの異なるマシンからこのアセンブリに対してアプリケーションをテストしています。1 つは Windows 2003 サーバーを実行しており、もう 1 つのマシンは Windows XP Professional を実行しています。

Win 2003 サーバーからアセンブリのメソッドを呼び出すことはできますが、XP マシンになると失敗します。

イントラネット ゾーンを FULL TRUST に設定しようとしましたが、XP ではうまくいきませんでした。XP と 2003 サーバーの違いの 1 つは、XP が 32 ビットであり、フレームワーク 1 ~ 4.0 がインストールされていることです。2003 には 3.5 SP1 がインストールされているだけです。

私は XP マシンの管理者ですが、それが動作する 2003 マシンの管理者ではありません。 これは私を夢中にさせています。

4

1 に答える 1

0

Windows のアクセス許可は重要ではありません。コード アクセス セキュリティの問題です。発生しているエラーについて詳しく知らずに問題を診断することは困難です。AllowPartiallyTrustedCallersAttribute (APTCA) は、部分的に信頼されたコードが完全に信頼されたコードを呼び出せるようにするためのものですが、.NET 4.0 セキュリティ モデルでは APTCA の動作方法が変更されました。詳細については、このブログ投稿を参照してください。ただし、.NET 4.0 では APTCA アセンブリは とマークされており、.NET アセンブリの既定の保護レベルであるアセンブリをSecurityTransparent呼び出すことはできません。SecurityCritical

そのため、.NET 4.0 の APTCA アセンブリが、SecurityCriticalコードの呼び出しやアクセス許可のアサートなど、特権のある処理を行っている場合、失敗します。コードで呼び出してコードを呼び出すSecuritySafeCriticalことができるようにすることを検討する必要があります。もちろん、APTCA コードと同様に、信頼できないライブラリによって悪用されないようにする必要があります。SecurityTransparentSecurityCritical

于 2011-02-23T07:33:13.140 に答える