如何在创建ADO.NET模型时在应用程序代码中设置敏感数据?某些标记a

时间:2011-05-05 18:49:12

标签: c# security entity-framework model connection

我正在为数据库创建模型,并对ADO.NET实体模型向导中的以下语句感到好奇,在该向导中,您可以选择是或否作为存储敏感数据的位置 -

  

“不,从连接字符串中排除敏感数据。我会设置它   在我的应用程序代码中。“

我从未使用过此选项,只是想知道我是否在指定敏感数据的地方。有什么想法吗?

4 个答案:

答案 0 :(得分:8)

设置Model构造函数的连接字符串参数:

MyEntities1 db = new MyEntities1 ("metadata=res://*/Model1.csdl|res://*/Model1.ssdl|res://*/Model1.msl;provider=System.Data.SqlClient;provider connection string=';Data Source=localhost;Initial Catalog=myDb;User ID=user1;Password=myPass;MultipleActiveResultSets=True';"); 

答案 1 :(得分:2)

创建加密DLL以保存连接字符串

修改实体的构造函数

 // Separate Encrypted DLL file
 public static class secureData()
 {
    public static string ConString = @"Data Source=YOUR_SERVER;Initial 
    Catalog=YOUR_DB;Persist Security Info=True;User 
    ID=YOUR_USER;Password=YOUR_PASSWORD";
 }


 public sampleDBEntities() : base("name=sampleDBEntities")
    {
        this.Database.Connection.ConnectionString =  secureData.ConString ;
    }

答案 2 :(得分:0)

这是我过去使用过的,虽然很多人会认为它不安全地将纯文本密码存储在源文件中。有一些方法可以通过加密连接字符串来保护这一点;

public db_entity()
            : base("name=db_entity")
        {
            this.Database.Connection.ConnectionString= "server=localhost;user id=<USERNAME>;Password=<PASSWORD.;persistsecurityinfo=True;database=<DB_NAME>";            
        }

答案 3 :(得分:-2)

这是连接字符串的用户名和密码。如果您在配置文件中没有它们,则必须在创建数据上下文时提供它们。