2010-02-12 3 views
4

Я пишу собственное программное обеспечение для компании.Ограничение доступа к DLL в .NET

Я всегда хочу использовать методы ООП насколько это возможно. В этом мышлении я хочу создать слой доступа к данным (DAL), выделенный в своем собственном .DLL.

Что можно сделать, чтобы ограничить доступ DAL DLL до уровня моего бизнес-логики DLL?

Последнее, что мне нужно, это кто-то в компании с небольшим знанием программирования плюс доступ к системе (через Active Directory) для установки .NET Express, ссылку на мой .DLL и начало отключение кода доступа к данным за пределами реального система. Существуют ли какие-либо механизмы .NET, которые я могу использовать для ограничения DLL, которые будут использоваться только предварительно выбранным хост-приложением/DLL?

ответ

7

Самый простой способ ограничить доступ с точки зрения кода - использовать сборки друзей. Вы можете создавать все типы в вашем DLL-интерфейсе DLL-файла. Затем добавьте только компоненты Business Logic Layer в качестве друзей, и они смогут использовать типы. Любой другой в компании не будет, поскольку у них нет DLL с внутренним доступом.

Документация - http://msdn.microsoft.com/en-us/library/bb384772.aspx

+0

-1 Это не сработает. Маркировка класса как внутреннего означает, что к нему могут иметь доступ только классы в SAME-сборке. Другие сборки, которые ссылаются на DLL, не будут. Он специально просит, чтобы он мог ограничить использование библиотеки DLL отдельной сборкой, которую он хочет. – Nick

+0

@ Ник, ты прочитал ссылку, которую я разместил? Эти сборки точно соответствуют друг другу. – JaredPar

+0

Моя вина там ... подумал, что речь идет только об использовании внутреннего ключевого слова в классах. – Nick

1

Вы могли бы сделать использование рамок лицензирования приложений встраивать в .NET с использованием класса LicenseProvider. В зависимости от того, как вы его реализовали, наличие DLL недостаточно для использования вашей библиотеки ... им также потребуется какой-то файл лицензии или предоставить лицензионный ключ. Here is a good article on how to start using it.

+0

+1 для хорошей альтернативной перспективы. Однако для внутреннего программного обеспечения было бы слишком сложно. Но хорошая идея! – HardCode

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