编写应用程序以加密/解密各种web.config(vb.net)

时间:2011-02-25 10:56:01

标签: .net visual-studio web-config

我正在尝试编写一个应用程序来加密和解密已选中的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,而无需重新发布等...

非常感谢任何帮助。

由于

1 个答案:

答案 0 :(得分:3)

Microsoft has a built in way to already encrypt parts of your web.config。没有必要重新发明轮子。

如果您想构建一个管理界面来查看这些设置,那么这也很容易。因为它在内存中解密它(当它被处理时),你可以获得相关的部分并将它们转储到管理界面中。请注意,对web.config的任何实际更改都将导致AppPool回收。