首页 新闻 会员 周边

C# 关于全局属性管理的问题。

0
悬赏园豆:10 [已解决问题] 解决于 2014-09-04 09:58

我的程序里边有数据库连接,有ftp服务器的连接,测试的时候是在本机的,但是把程序发布之后在服务器之后数据库的连接字符串和ftp服务器的地址也要改变,如何把这些变动的属性放在一个可以在外部编辑的文件里边?程序就直接读取这个文件就可以了。

RinSing.Feng的主页 RinSing.Feng | 初学一级 | 园豆:30
提问于:2014-08-26 11:02
< >
分享
最佳答案
0

Winform一旦要产品化,都会碰到这个问题。

因为所有的微软示例代码都是把连接串放在CONFIG文件里面。

对于WEB,这个是没有太大问题的,因为服务器本身有一定的安全措施,不是每个使用者可以查看到代码的。

对于Winform,通常的解决方案是

1、按照楼上说的,至于是配置文件,还是自定义的文件,都可以。

我是放在一个自定义类里面,再对类进行加密序列化,然后保存为system.dat之类的文件。

基于一个假设,我的程序没有CIA或者国安局的人想破解。

安全性当然可以说比较差,如果别人破解了我的加密,数据库就完了。

 

2、要想数据库安全,那就麻烦了,整个项目的逼格要高一些,才考虑使用这个方法。

那就是,开发或者使用应用服务器。(你可以把IIS当成一个应用服务器理解)

这样,你的Winform只跟应用服务器对话,不与数据库直接对话。

只是这样一来,你基本上所有的代码都要重新写过,可能连开发软件的基本概念都要刷新。

可以参考CSLA.NET,大神之作。

 

3、还见过一种方法,假的WINFORM,里面嵌了网页,所以实际上还是以WEB开发为主。

这个不算WINFORM的解决方案了,你可以忽略之....

收获园豆:4
爱编程的大叔 | 高人七级 |园豆:30839 | 2014-08-26 11:30
其他回答(3)
0

config配置文件啊。

放在appSettings里就好了,然后通过System.ConfigurationManager来进行操作(这个是名称空间,你搜索下,要引用这个DLL)。

收获园豆:2
519740105 | 园豆:5810 (大侠五级) | 2014-08-26 11:11

放在config里边不太安全吧。而且还有数据库的链接地址还要帐号密码啊~

支持(0) 反对(0) RinSing.Feng | 园豆:30 (初学一级) | 2014-08-26 11:13

@RinSing.Feng: 既然你要动态的,还能放哪里?无论放哪里,都是存在配置帐号密码的过程。

你可以对存储的数据进行必要的加密处理,这个算法自己掌握就好了,只是,你要为这个加密算法提供解密的算法,同时加密算法还要独立出来以方便配置数据。

支持(0) 反对(0) 519740105 | 园豆:5810 (大侠五级) | 2014-08-26 11:15
0

配置文件啊

收获园豆:2
吴瑞祥 | 园豆:29449 (高人七级) | 2014-08-26 11:17
0

这两天刚做过这样程序,配置远程连接服务器,IP地址总变动,打包后config文件不能使用,没办法就本地保存了。还好那边公司局域网内部访问。这里就有问题了,你都客户群里多大,以及外界情况如何。如果小范围使用,我觉得在本地未免不可

收获园豆:2
伏草惟存 | 园豆:1420 (小虾三级) | 2014-08-26 14:22
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册