关于winform系统中数据库连接串的安全问题,困惑我很久了 在winform系统中,连接数据库连接字符串在开发时会由dataset设计器自动生成并写在app.config中,我想将其中的用户名和口令加密,但是由于global::xxx.Properties.Settings.Default.xxxConnectionStringtableadapter是只读的,不能在运行时赋值,无法在app.config中写加密字符串,请问大家是怎么处理的. 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 我觉得在系统启动后,让用户自己输入用户名和口令为妥当,再加载数据什么的。如果觉得用户不必要知道密码的话,那你把密码加密后放到.txt文件中,也没必要放到app.config里啊。引用:==============================连接数据库连接字符串在开发时会由dataset设计器自动生成并写在app.config中==============================估计是你为了省事,这样做不对的,要动态加载,先建立一个数据库连接类,然后再代码实现dataset的创建,这样的话就用不着 app.config了 可以把串写道app.config中,可以写入加密串, 然后在程序中,读出来,解密后,赋到一个字符串中,这样你再用这个字符串连接数据库, 开发时自动建立了settings的数据库连接串后,调试程序很方便,有些代码如窗口的combo等的数据绑定都是在设计器上实现的,所以dataset的建立和连接都在自动生成代码中实现了.你是说应该手动建立dataset,然后设置每个用到的tableadapter的connect属性么?我也这么想过,就是麻烦了些.我想找个比较简便的方法,比如程序启动后,我通过读取自设定的ini加密配置文件,建立数据库连接串,然后给global::xxx.Properties.Settings.Default.xxxConnectionStringtableadapter赋值,使所有dataset的数据库连接串都变过来.qfkfw(空军一号) 兄弟说的有些简单了,除非你不用dataset编辑器.============================================估计是你为了省事,这样做不对的,要动态加载,先建立一个数据库连接类,然后再代码实现dataset的创建,这样的话就用不着 app.config了 手动将加密后的字符串写入App.config中然后在程序中解密 dataset中的tableadapter默认是自动连接的,它的连接是通过读取global::xxx.Properties.Settings.Default.xxxConnectionStringtableadapter的值,但是这个值是只读的,所以无法在程序启动后修改.=====================================tuyile006(小y)手动将加密后的字符串写入App.config中然后在程序中解密 个人认为比较好的做法为由客户端选择数据库联接字符串关键字或在<程序>.exe.config文件中只保存数据链接关键字,登陆时发送关键字到服务器端,在服务器端通过关键字找到真正的链接字符串返回到客户端。数据的传输最好加密,简单的实现可以使用,System.Security.SecureString,该封闭类在2.0中提供,无论怎么样,要安全加密是肯定需要的。 在这个论坛搜索App.config出来这种类似的问题一大把 如果想真的实现数据安全,最好加一层操作数据的Webservice(例如List,Append,Delete,Modify),所有安全认证的东西在这一层实现才好,否则通过客户端直接操作数据库的话,总有不安全的地方,且一旦数据库的密码进行了修改,还要修改所有客户端。 虽然没有更简便的解决方案,不过还是谢谢大家的热心参与,我是刚从员传统的的数据库编程转到.NET开发,也许很多思维方式尚未完全适应这个架构,好吧,就此结贴,答者有其分 C#实现窗体中所有控件跟随窗体尺寸的自由变换 C#机试题 关于随机数问题 如何在XP下通过编程修改计算机名? 求助:ASP.NET的母版页是做什么? Winform 界面切换时为何控件中的文字堆在一起了? 如何用c#开发控制modem的程序 输出这种格式的表格我应该用什么控件? 这个backgroundworker问题出在哪里 unhandled exception has occurred in your application 标签 'http' 已声明。标签名称在批查询或存储过程内部必须唯一。标签 'http' 已声明。标签名称在批查询或存储过程内部必须唯一。 打印问题
==============================
连接数据库连接字符串在开发时会由dataset设计器自动生成并写在app.config中
==============================
估计是你为了省事,这样做不对的,要动态加载,先建立一个数据库连接类,然后再代码实现dataset的创建,这样的话就用不着 app.config了
估计是你为了省事,这样做不对的,要动态加载,先建立一个数据库连接类,然后再代码实现dataset的创建,这样的话就用不着 app.config了
tuyile006(小y)
手动将加密后的字符串写入App.config中然后在程序中解密