我正在尝试编写一个应用程序来加密和解密已选中的web.config。
我发现了一些代码可以在类似的应用程序中执行此操作...
进口系统 导入System.Configuration Imports System.Web.Configuration
受保护的子Page_Load(ByVal sender As Object,ByVal e As System.EventArgs)处理Me.Load
'encrypt/decrypt identity
Dim config As Configuration
Dim configSection As ConfigurationSection
'encrypt identity
config = WebConfigurationManager.OpenWebConfiguration(Request.ApplicationPath)
If Not (config Is Nothing) Then
configSection = config.GetSection("system.web/identity")
If Not (configSection Is Nothing) Then
If Not (configSection.SectionInformation.IsLocked) Then
configSection.SectionInformation.ProtectSection("DataProtectionConfigurationProvider")
config.Save()
End If
End If
End If
'decrypt identity
config = WebConfigurationManager.OpenWebConfiguration(Request.ApplicationPath)
configSection = config.GetSection("system.web/identity")
If Not (configSection Is Nothing) Then
If Not (configSection.SectionInformation.IsLocked) Then
configSection.SectionInformation.UnprotectSection()
config.Save()
End If
End If
我想要做的是把它放在一个带有几个按钮(btnEncrypt和btndecrypt)的win表单应用程序和一个浏览控件(浏览到各种web.configs)。
我们的操作人员可以使用该应用程序,以便他们可以加密或解密所有Web应用程序中的所有web.config,而无需重新发布等...
非常感谢任何帮助。
由于
答案 0 :(得分:3)
Microsoft has a built in way to already encrypt parts of your web.config。没有必要重新发明轮子。
如果您想构建一个管理界面来查看这些设置,那么这也很容易。因为它在内存中解密它(当它被处理时),你可以获得相关的部分并将它们转储到管理界面中。请注意,对web.config的任何实际更改都将导致AppPool回收。