我通过aspnet_regiis -pef ...
把我的appconfig中的connectionStrings加密成功了,
可是Settings.settings文件里却是明文的数据库连接字符串。就这样我把我的程序编译了一下,然后用Reflector进行了反编译,发现我的Settings.settings里的明文内容一览无余,我的天,那加密app.config还有个啥作用呢?请高人指点一下,既然大家都希望加密app.config文件,我想一定是有作用的。
是不是我理解上存在问题。我的工程里有个强类型的DataSet,里面使用到的连接字符串都是从Settings.settings中读取到的。
实在有点困惑了.....
把我的appconfig中的connectionStrings加密成功了,
可是Settings.settings文件里却是明文的数据库连接字符串。就这样我把我的程序编译了一下,然后用Reflector进行了反编译,发现我的Settings.settings里的明文内容一览无余,我的天,那加密app.config还有个啥作用呢?请高人指点一下,既然大家都希望加密app.config文件,我想一定是有作用的。
是不是我理解上存在问题。我的工程里有个强类型的DataSet,里面使用到的连接字符串都是从Settings.settings中读取到的。
实在有点困惑了.....
1.把app.config文件改名为web.config
2.用apsnet_regiis 把web.config加密〔把connectionstring和appsetting两个区段都加了密〕
3.把iDataSet.designer.cs里原本使用OPAccessDB.Properties.Settings.Default.pubsConnectionString作为连接字符串的地方都用System.Configuration.ConfigurationManager.ConnectionStrings["OPAccessDB.Properties.Settings.pubsConnectionString"].ConnectionString做了替换;
4.然后删除了工程中的Settings.settings文件;
5.编译项目后,生成的.exe文件用Reflector进行了反编译,发现反编译的内容里已经找不到明文的数据库连接字符串了。这样应该是达到隐藏和加密数据库连接字符串的目的了;问题:
一旦作了替换,iDataSet的可视化编辑中,就不能对TableAdapter做配置了,因为会提示"配置失败"的错误提示;不知道有没有高手想到更好的解决办法,还望能继续回帖,便于大家参考,谢谢了!
System.Configuration.ConfigurationManager.ConnectionStrings["OPAccessDB.Properties.Settings.pubsConnectionString"].ConnectionString
其中:
"OPAccessDB.Properties.Settings.pubsConnectionString"是app.config文件中连接字符串的name;
文件部分如下:
... ...
<connectionStrings>
<add name="OPAccessDB.Properties.Settings.pubsConnectionString"
connectionString="Data Source=192.168.0.200;Initial Catalog=UserInfoManager;Persist Security Info=True;User ID=sa;Password=147258369"
providerName="System.Data.SqlClient" />
</connectionStrings>
... ...
一处是app.config
一处是Settings.settings
现在app.config通过aspnet_iis的方法加密了,而且在工程中也移出了Settings.settings文件。
即便反编译后,也应该是找不到数据库连接字符串的了,我的想法应该是对的吧!至于程序被反编译,我却无所谓的了。
我的目的就是在程序中别存在明文的数据库连接字符串即可。
还是保留Settings.settings.
打到Settings.settings,双击打开Setting的窗口,(或在项目属性的Setting节).
如果你的config文件的设置和之前不一样,它会提示是不是用新的值更新settings的值,你选yes就可以了.
不信你可以在Settings.settings里创建数据库连接字符串
然后app.config文件里就会有对应的设置,你通过aspnet_regiis -pef ...(网上介绍的很多)方式加密app.config文件
然后编译项目最后你用Reflector反编译你的exe文件,打开反编译项目的Resources节点里,便可清晰的看到明文的数据库连接字符串;我之所以那么做,就是希望数据库连接字符串得到加密;不过办法有点拙,但也没有找到两全的办法,所以发此帖,也希望能有高人给指点一下;谢谢各位回帖者,期待高人光顾....
如果你的config文件的设置和之前不一样,它会提示是不是用新的值更新settings的值,你选yes就可以了."这样,Settings.settings里就是和app.config是一样的了.
是不会有任何提示的,而且里面的数据库连接字符串依旧是明文的。不知道你测试后结果会如何,静候佳音... ;-)