Winforms 如何首先使用EF 4.1代码加密连接字符串?
我正在使用CodeFirstRC构建一个类库,我希望能够加密我正在使用的连接字符串。类库的使用者可能是ASP.NET或Windows窗体应用程序,因此我需要一种同时适用于两者的加密方法Winforms 如何首先使用EF 4.1代码加密连接字符串?,winforms,entity-framework,code-first,Winforms,Entity Framework,Code First,我正在使用CodeFirstRC构建一个类库,我希望能够加密我正在使用的连接字符串。类库的使用者可能是ASP.NET或Windows窗体应用程序,因此我需要一种同时适用于两者的加密方法 似乎我可以按名称将连接字符串传递到DbContext,但不能按值传递,如图所示,因此我认为在将字符串传递到DbContext之前,无法在程序中手动解密。谁能给我指一下正确的方向吗 您可以轻松加密任何.NET配置部分—不仅像许多开发人员所想的那样在ASP.NET中加密,而且在其他应用程序中也可以加密 查看主题-精彩
似乎我可以按名称将连接字符串传递到DbContext,但不能按值传递,如图所示,因此我认为在将字符串传递到DbContext之前,无法在程序中手动解密。谁能给我指一下正确的方向吗 您可以轻松加密任何.NET配置部分—不仅像许多开发人员所想的那样在ASP.NET中加密,而且在其他应用程序中也可以加密 查看主题-精彩阅读 通过这种方法,您可以对
部分进行加密,为了使其更容易,您还可以将该部分外部化为一个单独的文件
因此,在Winforms应用程序的app.config
中,您需要:
<connectionStrings configSource="ConnectionStrings.config" />
在web应用程序的
web.config
中也是如此,引用的文件只包含
,可以进行加密。从配置中加载适当的连接字符串,并将其传递到您的DbContext
构造函数中,您应该不会有问题。您可以将完整的连接字符串传递到DbContext:
在“其他DbContext构造函数选项”下:
- 您可以将完整连接字符串传递给DbContext,而不仅仅是
数据库或连接字符串
名称默认情况下,此连接
字符串与
System.Data.SqlClient提供程序;
这可以通过设置
i连接工厂到
context.Database.DefaultConnectionFactory - 您可以通过传递现有的DbConnection对象来使用它 到DbContext构造函数。如果 连接对象是的一个实例 实体连接,然后是模型 将在连接中指定 在数据库/模型优先模式下使用。 如果对象是的实例 其他的一些类型,比如, SqlConnection,则上下文将 将其用于代码优先模式
如果这是真的,那么您可以使用AES或其他加密来加密.config文件中的字符串,然后在运行时解密并将其提供给DbContext构造函数。如果使用转换,加密节是否有效?例如,
Web.Release.config
?