我的程序里边有数据库连接,有ftp服务器的连接,测试的时候是在本机的,但是把程序发布之后在服务器之后数据库的连接字符串和ftp服务器的地址也要改变,如何把这些变动的属性放在一个可以在外部编辑的文件里边?程序就直接读取这个文件就可以了。
Winform一旦要产品化,都会碰到这个问题。
因为所有的微软示例代码都是把连接串放在CONFIG文件里面。
对于WEB,这个是没有太大问题的,因为服务器本身有一定的安全措施,不是每个使用者可以查看到代码的。
对于Winform,通常的解决方案是
1、按照楼上说的,至于是配置文件,还是自定义的文件,都可以。
我是放在一个自定义类里面,再对类进行加密序列化,然后保存为system.dat之类的文件。
基于一个假设,我的程序没有CIA或者国安局的人想破解。
安全性当然可以说比较差,如果别人破解了我的加密,数据库就完了。
2、要想数据库安全,那就麻烦了,整个项目的逼格要高一些,才考虑使用这个方法。
那就是,开发或者使用应用服务器。(你可以把IIS当成一个应用服务器理解)
这样,你的Winform只跟应用服务器对话,不与数据库直接对话。
只是这样一来,你基本上所有的代码都要重新写过,可能连开发软件的基本概念都要刷新。
可以参考CSLA.NET,大神之作。
3、还见过一种方法,假的WINFORM,里面嵌了网页,所以实际上还是以WEB开发为主。
这个不算WINFORM的解决方案了,你可以忽略之....
config配置文件啊。
放在appSettings里就好了,然后通过System.ConfigurationManager来进行操作(这个是名称空间,你搜索下,要引用这个DLL)。
放在config里边不太安全吧。而且还有数据库的链接地址还要帐号密码啊~
@RinSing.Feng: 既然你要动态的,还能放哪里?无论放哪里,都是存在配置帐号密码的过程。
你可以对存储的数据进行必要的加密处理,这个算法自己掌握就好了,只是,你要为这个加密算法提供解密的算法,同时加密算法还要独立出来以方便配置数据。
配置文件啊
这两天刚做过这样程序,配置远程连接服务器,IP地址总变动,打包后config文件不能使用,没办法就本地保存了。还好那边公司局域网内部访问。这里就有问题了,你都客户群里多大,以及外界情况如何。如果小范围使用,我觉得在本地未免不可