2

定義された前提条件に基づいて、ライブラリの読み込みと実行を制限するにはどうすればよいですか? たとえば、外部ライブラリを使用するアプリケーションをクライアントに配布する場合、外部ライブラリがアプリケーションでのみ使用され、クライアントが他の目的で使用されないようにするにはどうすればよいですか?

コード アクセス セキュリティが解決策ですか? もしそうなら、上記の状況でそれを適用する方法の良い例はありますか?

ありがとう!

更新: サービスを使用してロジックを保護することはできません。アセンブリでコードを提供する必要があり、他の製品のビルドに使用されないように保護したいと考えています。

4

4 に答える 4

4

アクセスを制限する最善の方法は、ロジックをアセンブリからサービス レイヤーに移動することです。そのアセンブリのロジックを保護することに本当に関心がある場合は、これが最善の方法です。

クライアントがアセンブリを手にしていて、それを使用したいという真の動機があれば、どんなメカニズムも十分な努力で打ち負かすことができることを忘れないでください。そのため、クライアントが実装自体を取得することを許可せずにアプリケーションがロジックにアクセスできるため、サービス レイヤーは完璧なソリューションです。

于 2011-02-24T02:09:39.497 に答える
0

コードの難読化を検討する必要があります 。何もしなければ、専任の誰かがアセンブリに含まれているロジックを使用できなくなることはありませんが、難読化するとさらに難しくなり、ほとんどの人を思いとどまらせることができます。

詳細については、この質問を参照してください

于 2011-02-24T03:41:30.613 に答える
0

フレンドリ アセンブリのみが自分のアセンブリを使用できるようにするビルド オプションがありますが、これは、自分のアセンブリとクライアントのアセンブリの両方に署名できることを意味します。あなたがやりたいことは、ある種のサービスレイヤーやサーバーロジックへの認証/接続制限なしで可能であるとは思えません。ごめん。

于 2011-02-24T03:49:42.067 に答える
0

ここで考えただけで、間違いなくこれは最も安全でも最善の方法でもありません。ちょっとした回避策かもしれません。

アセンブリを実行可能ファイルと共に送信する代わりに、アセンブリをグローバル アセンブリ キャッシュ (GAC) に移動し、GAC に存在するアセンブリにアクセスするように実行可能コードを変更するのはどうですか? 次に、アセンブリの名前を、クライアントが理解できないガベージ名 (または適切と思われるもの) に変更できます。そのため、そのアセンブリの森でアセンブリを見つけることはほとんど不可能です。

お役に立てれば!

よろしく、

サマール

于 2011-02-24T04:46:03.273 に答える