我正在开发一个使用Entity Framework 6的Web API。 Entity Framework的连接字符串使用公司标准加密。(sql server 2014)我可以很好地解密连接字符串,但我还没有找到如何拦截DbContext并设置解密后的连接字符串的方法。(在Web.config有加密连接字符串之前,我能够正常运行API,并且所有数据库调用都适当地工作)
以下代码显示了我目前如何绕过这个问题。我为我的上下文类创建了一个部分类,因为Peliquin.Context.cs类是生成的代码。我解密连接字符串(如我所验证的那样,看起来完全正确),然后将其传递到此类中。以前的代码是:base("name=ConnectionName")
错误消息似乎表明DbContext不能传递实际的连接字符串。但是,如果我传递连接名称,它会遇到连接字符串被加密的问题。
我已经搜索过了,但无法找到这个看起来很简单的问题的解决方法。任何帮助将不胜感激。
附注:此网站将部署到多个客户端站点,每个站点都有自己的数据库凭据。在安装程序将API和UI Web应用程序安装到服务器时,另一个应用程序运行,更新web.config文件以连接到适当的客户端数据库。整个过程不需要用户交互。如果有人能想出一种更好的方法来更改web.config连接字符串,然后加密它,而无需人工干预,请随时向我提出替代解决方案的建议。
以下代码显示了我目前如何绕过这个问题。我为我的上下文类创建了一个部分类,因为Peliquin.Context.cs类是生成的代码。我解密连接字符串(如我所验证的那样,看起来完全正确),然后将其传递到此类中。以前的代码是:base("name=ConnectionName")
错误消息似乎表明DbContext不能传递实际的连接字符串。但是,如果我传递连接名称,它会遇到连接字符串被加密的问题。
我已经搜索过了,但无法找到这个看起来很简单的问题的解决方法。任何帮助将不胜感激。
附注:此网站将部署到多个客户端站点,每个站点都有自己的数据库凭据。在安装程序将API和UI Web应用程序安装到服务器时,另一个应用程序运行,更新web.config文件以连接到适当的客户端数据库。整个过程不需要用户交互。如果有人能想出一种更好的方法来更改web.config连接字符串,然后加密它,而无需人工干预,请随时向我提出替代解决方案的建议。