2

私が作成した .Net DLL は、WCF サービスと対話する WCF クライアントを実装しており、エンド ユーザーはサービスが存在するサーバーにデータをパイプできます。

仕事用に開発したクライアント プログラムでこの DLL を使用していますが、この .Net DLL を Web ページで使用して、クライアントをネット上のエンド ユーザーに配信できるようにしたいと考えています。

ASP.Net には、オブジェクト タグ パターンを使用して Web ページ内の .Net DLL を参照できる優れた機能があります。

<object id="demolib" classid="DemoLib.dll#DemoLib.DemoClass"></object>

これは、クライアント マシンに存在しない可能性がある .Net DLL (上記のコードの DemoLib.dll) で特定の機能が利用可能であることを、クライアントのランタイム環境に警告します。要求された機能が存在しない場合、DLL はクライアントに転送され、Web ページで使用できるようにクライアントの GAC にセットアップされます。

インストーラーなしで、完全信頼環境でローカルでもリモートでも動作するようにしました。DLL は Web ページ経由で配信され、問題なくエンド ユーザーの GAC にインストールされます。

DLL を完全な信頼の範囲外で配信しようとすると、問題が発生します。DLL にアクセスするために、エンド ユーザーが接続先のサイトを完全な信頼に設定する必要はありません。有効な証明書を使用して.Net DLLに厳密な名前を付けて署名することに問題はありません。この DLL の信頼は暗黙的である必要がありますが、そうではないようです。

ユーザーが必要に応じて DLL の配信と使用を承認できるようにする方法が必要だと思いますが、そのような配信を失敗なくモデル化することはできませんでした。

問題は、ユーザーがDLL の配信と機能を上記のオブジェクト タグ パターンを使用してインストールを強制せずに (OneClick、MSI など)許可できるようにするには、どのような戦略を使用する必要があるかということです。

4

1 に答える 1

1

それで、.NET アセンブリをクライアント マシンに完全な信頼の外部でサイレント モードで配信し、バックグラウンドで WCF サービスと通信させたいですか? これはまさに、トラスト システムが防止するように設計されていることです。

OneClick の導入を検討する必要があると思います。ユーザーは、クラウドと通信するソフトウェアをインストールするときに注意する必要があります。

于 2009-11-02T15:54:15.933 に答える