限制在.NET中访问DLL

时间:2010-02-12 16:39:15

标签: .net vb.net architecture code-access-security

我为公司编写内部软件。

我总是希望尽可能地利用OOP技术。在这个想法中,我想创建一个孤立在自己的.DLL中的数据访问层(DAL)。

我该怎么做才能将DAL DLL的访问权限仅限于我的业务逻辑层DLL

我需要的最后一件事就是公司中有一些人具有一点编程知识以及访问系统(通过Active Directory)来安装.NET Express,引用我的.DLL,并开始在外面启动数据访问代码真实的系统。我是否可以使用任何.NET机制来限制DLL仅由预先选择的主机应用程序/ DLL使用?

2 个答案:

答案 0 :(得分:7)

从代码角度限制访问的最简单方法是使用友元组件。您可以在数据访问层DLL Friend / Internal中创建所有类型。然后,只将您的业务逻辑层组件添加为朋友,他们将能够使用这些类型。公司中的任何其他人都不会,因为他们没有内部访问的DLL。

文档 - http://msdn.microsoft.com/en-us/library/bb384772.aspx

答案 1 :(得分:1)

您可以使用LicenseProvider类来使用构建到.NET的Application Licensing框架。根据您的实现方式,拥有DLL不足以使用您的库......他们还需要某种许可证文件,或提供许可证密钥。 Here is a good article on how to start using it