2010-12-15 4 views
5

Я хотел бы запустить стороннюю сборку .NET на моем API. Я хочу, чтобы он вызывал свои собственные методы и объекты по своему усмотрению, но отказывался от доступа ко всему, что мой API явно не дает. В частности, если мой API передает объект в код третьей стороны как IMyObject, я не хочу, чтобы они использовали отражение или какой-либо метод для подъема этого объекта, скажем MyObject, который реализует интерфейс.Можно ли отключить отражение от сборки .NET?

Есть ли способ отрицать возможность использования отражения в этой третьей стороне сборки? Я полностью контролирую все, поэтому мне не нужно останавливать людей от декомпиляции моей сборки, просто злоупотребляя им во время выполнения.

ответ

4

Что вы ищете, это сборка в песочнице. Это может быть достигнуто uisng CAS (Code Access Security) в .Net.

Вот как это работает. Вы создаете AppDomain, назначая ему ограниченные разрешения. Например, вы разрешаете отображение пользовательского интерфейса, но не разрешаете использовать файловую систему или отражение. Затем вы загружаете сборку в нее и запускаете ее.

.Net 4.0 представляет совершенно новую модель безопасности. Но я не знаю много об этом.

Вот что-то, чтобы вы начали:

Discover Techniques for Safely Hosting Untrusted Add-Ins with the .NET Framework 2.0

0

Если вызывающий абонент работает в режиме «Полное доверие», ничего не может быть сделано. Он всегда будет иметь полный доступ к сборке.

Лучше всего сфотографировать сборку. Это сделает сборку немного сложнее для реинжиниринга.

+0

К сожалению, вы меня не поняли. Я звонящий, и я звоню на чужую ассамблею. – Clueless 2010-12-17 04:07:31

Смежные вопросы