我需要一种方法将已编译的程序集从客户端传输到服务器,并能够将其存储在数据库或文件中,以便我可以在“到”端获取这些字节并重新加载部件。有没有办法做到这一点。为了澄清,我有一个winforms应用程序,它将生成代码并根据一些元数据进行编译。现在我需要能够将它转移到一个网站并以某种方式存储它,但我不想要一个DLL(因为它可以被解编)。然后我会在一边有一个“服务器”程序,它将把它加载到内存中。我可以只传输加密的源代码,但我想我只能转移已编译的汇编。
更多信息:即使在“从”端,也没有生成文件,它在内存中编译,因此永远不会创建物理dll。
答案 0 :(得分:2)
听起来你想要serialize your compiled assembly来自/到内存,然后将它传输到服务器,然后再将它反序列化到一个程序集中。
答案 1 :(得分:1)
如何传输加密的DLL?
答案 2 :(得分:1)
您可以使用公钥加密。
客户端将使用公钥来加密组件的字节。这些字节将存储在数据库中 - 对于没有私钥的人来说完全没用。然后,服务器可以读取这些字节,使用私钥解密它们,并从解密的字节流重新构建程序集。
由于您正在使用公钥加密,即使客户端遭到入侵,您的密钥(私钥)也是安全的,因为它存储在服务器上。
要了解有关此技术的更多信息,我建议您阅读this。
答案 3 :(得分:1)
我建议您使用二进制序列化程序并将流管道传输到可以设置为特定加密模型的CryptoStream。然后获取输出流并将其转储到您的位置。在您的流程的运行结束时,您解密并反序列化它。如果你想要你也可以使用DeflateStream,如果你的程序集足够大,这将节省一些空间。
希望这会有所帮助。如果您想要举例,请告诉我。