我想知道是否有办法限制对函数的调用调用?让我说清楚。
[Assembly:a1]
Class A
{
function Af();
}
[Assembly:a2]
Class B
{
function Bf(){
//load Assembly a1
//InvokeMember to Af
}
}
编译后我将有2个程序集。现在,如果我分发给客户端,任何人都可以复制程序集1并调用Af()。此函数在解密后返回setting.xml文件。我想停止从第三方访问我的功能。有什么办法吗?任何帮助表示赞赏。
感谢。
答案 0 :(得分:2)
在.NET中< 4.0,您可以使用StrongNameIdentityPermission来限制允许谁调用您的方法。但即便如此,也不会阻止那些决心掌握你的秘密数据的人。
答案 1 :(得分:0)
在B类中嵌套A类。
答案 2 :(得分:0)
您可以通过传入一些参数来使方法调用成功,从而对方法进行模糊处理。当前日期的Base64Encode或MD5可以工作(即使在正确调用时也可能在00:00:00附近失败)。
他们仍然可以反映您的程序集并查看该方法的调用方式。
恕我直言,您的担忧是不必要的,但是一个好的混淆工具会有所帮助(我没有为.Net进行过多次实验,但我听说大多数都不好)。