我在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是将连接字符串解密为原始文本的函数。
答案 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将自动解密加密的配置元素。