Winforms 如何首先使用EF 4.1代码加密连接字符串?

Winforms 如何首先使用EF 4.1代码加密连接字符串?,winforms,entity-framework,code-first,Winforms,Entity Framework,Code First,我正在使用CodeFirstRC构建一个类库,我希望能够加密我正在使用的连接字符串。类库的使用者可能是ASP.NET或Windows窗体应用程序,因此我需要一种同时适用于两者的加密方法 似乎我可以按名称将连接字符串传递到DbContext,但不能按值传递,如图所示,因此我认为在将字符串传递到DbContext之前,无法在程序中手动解密。谁能给我指一下正确的方向吗 您可以轻松加密任何.NET配置部分—不仅像许多开发人员所想的那样在ASP.NET中加密,而且在其他应用程序中也可以加密 查看主题-精彩

我正在使用CodeFirstRC构建一个类库,我希望能够加密我正在使用的连接字符串。类库的使用者可能是ASP.NET或Windows窗体应用程序,因此我需要一种同时适用于两者的加密方法


似乎我可以按名称将连接字符串传递到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