如何在web.config中添加加密的连接字符串到我的DBContext mvc4?

时间:2014-06-04 09:23:13

标签: asp.net-mvc entity-framework asp.net-mvc-4 connection-string

我在mvc 4项目中将UsersContext作为dbcontext。我在Web.config中有加密连接字符串,因为网站位于共享服务器中。我的DbContext是:

Public Class UsersContext
    Inherits DbContext
      Public Sub New()
        MyBase.New("DefaultConnection")
      End Sub

    Public Property UserProfiles As DbSet(Of UserProfile)
End Class

' DefaultConnection'在web.config中加密。
如何使用我的Decrypt函数并初始化连接。

   'I want to do Something like this : 

  Public Sub New()
    MyBase.New(MyStringDecrpytor(ConfigurationManager.ConnectionStrings("DefaultConnection").ConnectionString))
  End Sub

其中MyStringDecrpytor是将连接字符串解密为原始文本的函数。

2 个答案:

答案 0 :(得分:0)

您可以在派生构造函数中以编程方式设置连接sting,而不是依赖于基类DbContext。只需将DbContext.Database.Connection.ConnectionString设置为您想要的任何内容即可。在VB.NET中我相信它会是:

Public Sub New()
  MyBase.New()
  My.Database.Connection.ConnectingString = DecryptFunction("encryptedstringhere")
End Sub

答案 1 :(得分:0)

执行此操作的正确方法是使用Aspnet_regiis.exe工具加密这些部分。没有必要提供自己的加密或解密逻辑。见官方Microsoft Documentation

  

您可以使用ASP.NET IIS注册工具(Aspnet_regiis.exe)来加密或解密Web配置文件的各个部分。处理Web.config文件时,ASP.NET将自动解密加密的配置元素。