让我的dll只能通过我的exe访问的最佳方法?

时间:2013-11-24 13:22:01

标签: c# security dll assemblies

出于安全考虑,我正在寻找一种方法,只能从我的exe访问我的Data.dll。

Friend Assemblies”方法是否安全?似乎如果我有其他具有相同名称的exe,我可以看到对象并执行在我的dll中标记为internal的方法。

这是最好的方法吗?还有其他方法吗?

2 个答案:

答案 0 :(得分:0)

您可以使用强名称。像那样:

  

[组件:InternalsVisibleTo("朋友1,公钥= 0024000004800000940000000602000000240000525341310004000001000100bf8c25fcd44838d87e245ab35bf73ba2615707feea295709559b3de903fb95a933d2729967c3184a97d7b84c7547cd87e435b56bdf8621bcb62b59c00c88bd83aa62c4fcdd4712da72eec2533dc00f8529c3a0bbb4103282f0d894d5f34e9f0103c473dce9f4b457a5deefd8f920d8681ed6dfcb0a81e96bd9b176525a26e0b3&#34)]

来自:MSDN

  

注意:当前程序集和好友程序集必须都是   未签名,或两者都必须使用强名称签名

答案 1 :(得分:0)

如果应用程序需要管理您不希望包含在DLL中的用户或功能以用于安全目的,您应该公开一个安全的Web服务,该服务可以对登录到应用程序的用户进行身份验证并在服务器级别执行操作。当然,这假定您需要管理的内容是共享的,而不是特定于客户端的计算机。