c#.net 如何控制app.config里的数据库连接字符串不是明文?

本人初学.
在做一个网站的客户端,使用c#无疑是能上手最快的了.这几天一直头疼这个问题,app.config下的 数据库字符串连接是以明文显示的,虽然我没弄上密码,感觉还是太不安全了.
高手又没有好的解决办法?
我也想过在一个类里保存连接字符串然后封装成dll,但是我看好了dataset提供的功能,自己封装的dll肯定功能很差,最后要写大量的处理代码.太费事了.
网上有篇文章是 动态设置和加密app.config的链接字符串, 看的云里雾里的.很不明白.我不吝啬分数,说的明白的话,加分不成问题.而且我不会无端关闭问题.
希望能有一个好的方式去处理,另外,能否另外说明下项目怎么封装成安装程序?或是绿色程序也行.
二位,不太明白.
呵呵,你们要照顾下新手的理解能力.本身APP.CONFIG是可读写的,原始保存为加密字符串或是空字符串,使用数据库基类填入明文字符串,然后使用dataset吗?

第三位朋友,这个东西会不会很大? 我想越简单越好

第1个回答  2010-11-25
您可以下载Microsoft的Enterprise Library企业类库,其中有专门用来加密的类库,而且其中有个EntLibConfig.exe这个应用程序,专门用来给web.config和app.config来加密,企业类库可以到www.codeplex.com上下载,当然也可以百度啦,而且可以在百度文库中下载Enterprise Library类库的使用说明,是PDF版的,Enterprise Library4.1学习手册,如果找不到的话,可以给我发邮件,我可以发送给您。
Mail:Jake_ge@askey.com.tw
朋友,我可以很负责人的告诉你,我说的这个就是针对新手的,如果你想看懂类库的架构的话,那你真的需要有些底子,里面有很多的事例代码和编译好的dll,而我说的exe程序只有187kb
第2个回答  2010-11-24
用这个程序:Framework\版本号\aspnet_regiis.exe
aspnet_regiis -pe "connectionStrings" -app "/MyApplication"
-app "/MyApplication" 是你应用程序的名称

这样,就对connectionStrings进行了加密,访问connectionStrings的时候自动解密.
第3个回答  2010-11-24
同意楼上所言,自己加密就好,然后输出来你再把它粘贴到里面就是了,连接时解密还原就好了
第4个回答  2010-11-24
把连接字符串加密后放进APP.CONFIG里,
然后在数据操作基类里调用解密的方法这样不就可以了么?本回答被提问者和网友采纳

c#.net 如何控制app.config里的数据库连接字符串不是明文?
您可以下载Microsoft的Enterprise Library企业类库,其中有专门用来加密的类库,而且其中有个EntLibConfig.exe这个应用程序,专门用来给web.config和app.config来加密,企业类库可以到www.codeplex.com上下载,当然也可以百度啦,而且可以在百度文库中下载Enterprise Library类库的使用说明,是PDF版的,Enterprise Lib...

如何配置ADO.NET连接字符串
App.config是DotNet的通用配置文件,在ASP.Net中也同样适用,它是标准的 XML 文件,注意XML 标记和属性是区分大小写的。点击添加,即出现如图所示的添加代码的页面。在这里如果是想要添加配置连接字符串的代码,可以这样编写。其中ConnectionString是要配置的连接字符串。然后就是从程序中读取配置文件中的这个...

C#怎么获取app.config中connectionStrings配置节中的name值?
1.先在程序中导入包using System.Configuration;2.或是在右边项目名中添加外键引用 System.Configuraton;xml文件配置如下:<?xml version="1.0" encoding="utf-8" ?> <configuration> <configruations> <\/configurations> <connectionStrings> <add name="DataBaseOwner" (数据库拥有者) ...

C# app.config 不起作用.
错了,小伙子,App.config一般是存放数据库连接字符串的,它是为了在程序打包安装后装在客户电脑上,改动它的server=服务器的ip地址,起到链接服务器的作用。程序开发阶段写的要么是127.0.0.1,要么就是.或者local,这样就达不到C\/S模式的作用了。你说的情况应该是在程序开发阶段,没错,C#.NET不...

C#中app.config配置SQLserver数据库问题!特急!
阁下的add标签写错了,里面的key应该是name,获取可以试试(System.ConfigurationManager.ConnectionString["AddressBook"].connectionString)如果用这语句要添加系统应用的System.Configuration命名空间,

app.config中数据库路径的写法(C#+access 窗体应用程序)
DataDirectory是读取App_Data下的文件。最好是这样,“~”是读取应用服务目录的根目录。Data Source=~\/jz_manage.mdb"providerName="System.Data.OleDb" \/>

C#app.config文件connectionStrings中的字符串如何获取本文件中appSett...
global:: 程序名.Properties.Settings.Default. 连接字符串名;输入global及双冒号后,会自动提示余下的选择。此方法适用高低版本的C#NET,从2.0到4.0。下面一个示例,假定程序名是SetAppConfig。static void Main(string[] args){ SqlConnection connection = new SqlConnection();connection.Connection...

C#中连接字符串的格式
server=.;uid=sa;Pwd=sa;database=数据库名;"\/>如果不这样做的话,也可以直接写在页面上:string Str_cnn = “server=.;uid=sa;pwd=sa;database=数据库名;”;当是这样做的话,如果你的程序生成dll了,突然数据库名或密码改了,就不好配置了,所以建议放到web.config里。 好了,给分吧。

c#一个简单问题,关于登陆界面
比如我就是DataBaseEngine.cs,把一下内容复制到里面 使用时直接调用那个类就可以了,把里面的数据库连接字符串修改一下 其他你就不用理会了 验证时你要查一个表 DataTable dTable = DataBase.DataBaseEngine.CreateStaticInstance().ExecuteDataset(你的SQL语句); 返回的是一个DataTable 其他的方法虽然也可以,但是...

c# web.config加密有什么用处?
2) <connectionStrings> 这个比较容易理解,包含连接数据库用的字符串。3) <identity> 包含使用impersonate时的账户信息。4) <sessionState> 包含将session置于process外的连接字符串。总之,加密的主要目的是为了安全, 信息安全,知识产权安全等。ASP.NET提供了两种加密方式,DPAPI和RSA。我们可以选择...

相似回答