C/S请教一个安全连接数据库的方法。 刚从B/S开发转到C、S上来,对这里还不是太了解,放在客户端软件里的XML中,再把XML加密这样是不是太不安全了,并且我要是改动数据库连接的话用户就要更新这个文件。。其他方法请大虾们指教下,最好能给例子源码,或参考网站。资料上好像是说写个服务器端来接收,但是没太明白,谁能帮忙提供个例子或资料~~~~ 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 using System;using System.Collections.Generic;using System.Text;using System.Configuration;namespace MasterSoft.Common{ public class ConfigrationHelper { /// Author:TerryLee /// From:http://terrylee.cnblogs.com /// </summary> //加密配备文件 public static void EncryptConfiguration() { try { // 使用什么类型的加密 string provider = "RsaProtectedConfigurationProvider"; Configuration config = null; config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None); // 加密连接字符串 ConfigurationSection section = config.ConnectionStrings; ProtectSection(provider, config, section); section = config.AppSettings; ProtectSection(provider, config, section); } catch (Exception ex) { throw ex; } } private static void ProtectSection(string provider, Configuration config, ConfigurationSection section) { try { if ((section.SectionInformation.IsProtected == false) && (section.ElementInformation.IsLocked == false)) { section.SectionInformation.ProtectSection(provider); section.SectionInformation.ForceSave = true; config.Save(ConfigurationSaveMode.Full); } } catch (Exception ex) { throw ex; } } }}在Application.Run 前执行就好啦. 可以考虑smartclient,这样和bs一样,数据层是在服务器端. 一般进行加密就比较安全了。或者用webservice作为中间层,这样只有服务器上才能看到连接字符串,如果还觉得不安全,那就再加密。 你的安全连接指的是什么?如果是为了在客户端保存数据库连接密码,将用户名等信息加密后存放在XML应该没问题的。C/S程序的麻烦就是服务器端的改动会要求客户端作相应的改动,没办法的。当然如果你写个服务器端程序也是可以的,用服务器端程序隔离数据库与客户端,对保护数据库是有好处的,即做成真正的C/S,而不是客户端/数据库。 使用webservice吧,这样就可以在服务器上保存数据库连接 如果是c/s系统,那你可以用webservice获取连接,这个对webservice也要进行安全验证,所以简单的说,只要你进行了加密,基本上就满足 意思就是客户端程序给页面中的B/S程序请求,B/S反馈出结构,C/S在获取下。是这个意思吧。。关于smartclient和服务器端程序怎么写我还是没搞清楚有例子或源码和参考资料吗,大侠们给个,谢谢了 顶。网上搜索个DES加密解密类,或者自己写个加密解密算法。 什么系统要那么高安全性呢?一般把连接字符串加密就可以了,没那么苛刻,实在不行就用WebService 比如说一个数据库连接字符串,我用DES给他加密了,有一个八位密钥。 加密后成了一段乱码。 然后我这套客户端软件给了用户,在运行的时候肯定要调用这个数据库库加密字符串,调用的时候就解密,解密的方法就是把加密后的字符和密钥添加进去,这样就解好了。。 但是用户可以看到我的dll文件,反编译,看到我解密的方法,不就把数据库连接给找到了吗??? 服务器端可以写webservice返回dataset和本地请求返回dataset效果一样 我认为2楼的思想是是最好的。SmartClient说白了就是在CS构架体系的客户端软件添加WebService,将你的所有数据层都封装到WebService里面,你不是以前做BS开发吗,这个对你来说应该很简单的。这样安全,又高效。 正则表达式共用同一字符 如何让我创建的excel.application与双击打开的excel文件使用不同的进程 请教! 关于ZedGraphWeb绘图事件的问题!!!!! 跪求正则 如何获取DataGrid的header的width.height,top,left 使用app.config产生的问题 求助,我从word内获取的图片,为什么打不开?谢谢。 1.0vs1.1 类型转换问题。希望象思归这样的高手们也能回复一下。 在.net里面要怎么使用VSS呢? 用JS 怎么限制用户输入的时候 只能输入汉字,切只能是7位以下的数字呢? 关于写文本文件的问题?
using System;
using System.Collections.Generic;
using System.Text;
using System.Configuration;namespace MasterSoft.Common
{
public class ConfigrationHelper
{
/// Author:TerryLee /// From:http://terrylee.cnblogs.com /// </summary>
//加密配备文件
public static void EncryptConfiguration()
{
try
{
// 使用什么类型的加密
string provider = "RsaProtectedConfigurationProvider"; Configuration config = null; config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None); // 加密连接字符串 ConfigurationSection section = config.ConnectionStrings; ProtectSection(provider, config, section);
section = config.AppSettings;
ProtectSection(provider, config, section);
}
catch (Exception ex)
{
throw ex;
}
} private static void ProtectSection(string provider, Configuration config, ConfigurationSection section)
{
try
{
if ((section.SectionInformation.IsProtected == false) && (section.ElementInformation.IsLocked == false))
{
section.SectionInformation.ProtectSection(provider); section.SectionInformation.ForceSave = true; config.Save(ConfigurationSaveMode.Full);
}
}
catch (Exception ex)
{
throw ex;
}
} }
}
在Application.Run 前执行就好啦.
如果还觉得不安全,那就再加密。
意思就是客户端程序给页面中的B/S程序请求,B/S反馈出结构,C/S在获取下。是这个意思吧。。
关于smartclient和服务器端程序怎么写我还是没搞清楚
有例子或源码和参考资料吗,大侠们给个,谢谢了
加密后成了一段乱码。 然后我这套客户端软件给了用户,在运行的时候肯定要调用这个数据库库加密字符串,调用的时候就解密,解密的方法就是把加密后的字符和密钥添加进去,这样就解好了。。 但是用户可以看到我的dll文件,反编译,看到我解密的方法,不就把数据库连接给找到了吗???
SmartClient说白了就是在CS构架体系的客户端软件添加WebService,将你的所有数据层都封装到WebService里面,
你不是以前做BS开发吗,这个对你来说应该很简单的。这样安全,又高效。