首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在代码中为ADO.Net实体数据模型中的连接字符串提供密码

如何在代码中为ADO.Net实体数据模型中的连接字符串提供密码
EN

Stack Overflow用户
提问于 2011-11-17 23:51:14
回答 4查看 41.8K关注 0票数 24

我一直在遵循本教程,了解如何创建OData服务。

http://www.hanselman.com/blog/CreatingAnODataAPIForStackOverflowIncludingXMLAndJSONIn30Minutes.aspx

它工作得无懈可击。但是,在实体数据模型向导中,当它要求您“选择数据连接”时,它会给出这样的警告。

此连接字符串似乎包含连接到数据库所需的敏感数据(例如,密码)。在连接字符串中存储敏感数据可能存在安全风险。是否要将此敏感数据包括在连接字符串中?

如果我选择:“否,从连接字符串中排除敏感数据。我将在我的应用程序代码中设置它。”

我看不到我可以在哪里“在我的应用程序代码”中插入密码。(我的公司将它们加密存储在注册表中)

另外,根据环境(Dev、CA或Prod),我需要连接多个DB,并且我需要知道连接字符串中引用了哪个DB才能获得正确的密码。

谢谢。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2011-11-17 23:55:59

创建上下文时,可以设置连接字符串。要构建此连接字符串,可以使用EntityConnectionStringBuilder解析不带密码的连接字符串,然后使用其他ConnectionStringBuilder解析内部连接字符串,具体取决于您的浏览器。然后,您可以设置密码并将其传递给构造函数。

代码语言:javascript
复制
var originalConnectionString = ConfigurationManager.ConnectionStrings["your_connection_string"].ConnectionString;
var entityBuilder = new EntityConnectionStringBuilder(originalConnectionString);
var factory = DbProviderFactories.GetFactory(entityBuilder.Provider);
var providerBuilder = factory.CreateConnectionStringBuilder();

providerBuilder.ConnectionString = entityBuilder.ProviderConnectionString;

providerBuilder.Add("Password", "Password123");

entityBuilder.ProviderConnectionString = providerBuilder.ToString();

using (var context = new YourContext(entityBuilder.ToString()))
{
    // TODO
}
票数 33
EN

Stack Overflow用户

发布于 2015-09-29 05:26:24

我在配置文件("XXXXX")中添加了一个“虚拟”密码,然后在实体构造函数中将该值替换为真实密码

代码语言:javascript
复制
public MyDatabaseContainer() : base("name=MyDatabaseContainer")
{
    Database.Connection.ConnectionString = Database.Connection.ConnectionString.Replace("XXXXX","realpwd");
}
票数 19
EN

Stack Overflow用户

发布于 2013-12-11 16:21:55

修改实体的构造函数

代码语言:javascript
复制
 public sampleDBEntities() : base("name=sampleDBEntities")
    {
        this.Database.Connection.ConnectionString = @"Data Source=.\;Initial Catalog=sampleDB;Persist Security Info=True;User ID=sa;Password=Password123"; ;
    }
票数 13
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8170118

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档