问一下使用EF时,配置文件中的数据库连接用户和密码如何加密? 你把链接字符串加密,des,rsa等都可以,然后在读的时候解密 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 这里有源码,可以参照一下:http://www.codeproject.com/Articles/20398/Encrypt-and-Decrypt-ConnectionString-in-app-config 是这样,EF对ConnectionString 的解析是自动的,并不是由我们自己写代码来控制,所以问题就在这里。我们可以对ConnectionString 加密,但EF取到的是加密串,因此无法解析并使用。 看看这个:http://download.csdn.net/detail/z________/3814260 兄弟,请先看我回复。这个方法不行的。平常怎么加密解密我知道的。我用的是EF框架。EF框架下的加密解密你处理过吗?你给的这个没有提及说是EF框架下的解决方案,应该是不行的。 给你看一个加密配置文件的方法http://msdn.microsoft.com/en-us/library/system.configuration.rsaprotectedconfigurationprovider.aspx 如果是这样,楼主弄明白一个机制这个问题就能解决了..EF会自动采用与DbContext派生类名称相同的连接字符串, 但是你可以手动提供给它连接名称或连接字符串。 你这个似乎也没解决问题。我刚才说了,普通加密解密我会的。但我是对EF框架不熟悉,因为EF框架取connectionString自动解析,并连接数据库,不需要我自己写连接代码。所以我无法在EF连接数据库之前进行connectionString解密。要了解过EF的兄弟,才能提出精准的解决方案。 自己去看一下DbContext那几个构造方法就明白了。 我让同事去研究了,他说不行,原因是:xxx 10:13:52构造函数我看过,Db连接字符串,这个属性没公开.....不能手动赋值 那个是构造方法啊,跟属性什么的完全没联系啊,实例化的时候给它提供一个连接字符串就行了啊public DbContext(string nameOrConnectionString); 原构造函数: public NorthwindEntities(): base("name=NorthwindEntities") { }修改成: public NorthwindEntities() : base("metadata=res://*/Model1.csdl|res://*/Model1.ssdl|res://*/Model1.msl;provider=System.Data.SqlClient;provider connection string='data source=192.168.1.101;initial catalog=Northwind;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework'") { }我这里只是个例子,你可以用其他方法来代替了 原构造函数的参数"name=NorthwindEntities"。这个连接字符串可以写死在程序里面,也可以加密了写在配置文件,使用时再解密。 ef可以手动处理这些参数 不是必须要自动的重写继承dbcontex的类的构造方法就可以了 楼主的问题,通过重写下构造函数就可以解决了。我现在想搞清楚一个问题,EF的数据库连接怎么管理,我以前都是一个单独的连接池。EF中我怎么把以前的连接池用进来 不要在config文件中保存密码,在代码中设置连接参数,代码如下://设置EF连接串 EntityConnectionStringBuilder ecb = new EntityConnectionStringBuilder(); ecb.Metadata = "res://*/Model1.csdl|res://*/Model1.ssdl|res://*/Model1.msl"; ecb.Provider = "System.Data.SqlClient"; ecb.ProviderConnectionString = "data source=DatabaseServerName;initial catalog= DatabaseName;persist security info=True;user id=sa;password=YourPassword;multipleactiveresultsets=True;App=EntityFramework"; YourEntity YEntity = new YourEntity(ecb.ConnectionString); EntityConnectionStringBuilder ecb = new EntityConnectionStringBuilder(); ecb.Metadata = "res://*/Model1.csdl|res://*/Model1.ssdl|res://*/Model1.msl"; ecb.Provider = "System.Data.SqlClient"; ecb.ProviderConnectionString = "data source=DatabaseServerName;initial catalog= DatabaseName;persist security info=True;user id=sa;password=YourPassword;multipleactiveresultsets=True;App=EntityFramework"; YourEntity YEntity = new YourEntity(ecb.ConnectionString); 谢谢!就仿IDE有密码时的串,自己再生成就是。 public MovieDBContext() //: base("name=DefaultConnection") { var con = System.Configuration.ConfigurationManager.ConnectionStrings["DefaultConnection"].ConnectionString;// 解密:con+='xxxxxxxxx'; base.Database.Connection.ConnectionString = con; } 实体类数组怎么转换成实体类泛型? 关于两个Form之间的变量调用 如何讀取值 求助:帮忙完成CRC8校验代码,附功能函数 如何将word嵌入我的WindowsForm界面? 实现就像在VB中通过OLE方法在界面中嵌入Word的效果 C#发布程序以及调用MatlabDLL的问题 mshtml.IHTMLElement响应Web页面的事件没有响应,急急急!!!!!! WebBrowser透过id查不到页面上的元素 50分求Dot Net面试题,最好付答案 Form的哪个属性可以禁止改变窗口大小? C# listview右击修改数据 c#快捷键实现不了粘贴功能???
我们可以对ConnectionString 加密,但EF取到的是加密串,因此无法解析并使用。
http://msdn.microsoft.com/en-us/library/system.configuration.rsaprotectedconfigurationprovider.aspx
EF会自动采用与DbContext派生类名称相同的连接字符串, 但是你可以手动提供给它连接名称或连接字符串。
要了解过EF的兄弟,才能提出精准的解决方案。
自己去看一下DbContext那几个构造方法就明白了。
构造函数我看过,
Db连接字符串,这个属性没公开.....
不能手动赋值
public NorthwindEntities(): base("name=NorthwindEntities")
{
}
修改成:
public NorthwindEntities()
: base("metadata=res://*/Model1.csdl|res://*/Model1.ssdl|res://*/Model1.msl;provider=System.Data.SqlClient;provider connection string='data source=192.168.1.101;initial catalog=Northwind;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework'")
{
}我这里只是个例子,你可以用其他方法来代替了 原构造函数的参数"name=NorthwindEntities"。
这个连接字符串可以写死在程序里面,也可以加密了写在配置文件,使用时再解密。
重写继承dbcontex的类的构造方法就可以了
//设置EF连接串
EntityConnectionStringBuilder ecb = new EntityConnectionStringBuilder();
ecb.Metadata = "res://*/Model1.csdl|res://*/Model1.ssdl|res://*/Model1.msl";
ecb.Provider = "System.Data.SqlClient";
ecb.ProviderConnectionString = "data source=DatabaseServerName;initial catalog= DatabaseName;persist security info=True;user id=sa;password=YourPassword;multipleactiveresultsets=True;App=EntityFramework"; YourEntity YEntity = new YourEntity(ecb.ConnectionString);
ecb.Metadata = "res://*/Model1.csdl|res://*/Model1.ssdl|res://*/Model1.msl";
ecb.Provider = "System.Data.SqlClient";
ecb.ProviderConnectionString = "data source=DatabaseServerName;initial catalog= DatabaseName;persist security info=True;user id=sa;password=YourPassword;multipleactiveresultsets=True;App=EntityFramework"; YourEntity YEntity = new YourEntity(ecb.ConnectionString);
//: base("name=DefaultConnection") {
var con = System.Configuration.ConfigurationManager.ConnectionStrings["DefaultConnection"].ConnectionString;
// 解密:con+='xxxxxxxxx';
base.Database.Connection.ConnectionString = con; }