7

在 ASP.NET 中,您可以通过machineKey编程方式设置设置吗?

我们使用的网络应用程序将敏感信息存储在数据库中,因此如果我们可以将解密密钥放在那里,它会很方便。

4

2 回答 2

3

不; machineKey 元素必须通过配置设置。但是,web.config 本身可以加密,这有助于在攻击者访问配置文件时最大限度地降低密钥泄露的风险。(同样的过程可用于保护 SQL 连接字符串和几乎任何您希望的其他敏感配置元素。)请参阅http://msdn.microsoft.com/en-us/library/dtkwfdky(v=VS.100)。 aspx有关启用此功能的演练。

于 2012-10-02T16:57:38.523 回答
1

是的你可以。我在 ConsoleApplication 中使用此代码获得了成功:

private static void ChangeWebConfig(string validationKey, string decryptionKey, string webConfigPath)
{
    ExeConfigurationFileMap configFileMap = new ExeConfigurationFileMap();
    configFileMap.ExeConfigFilename = webConfigPath;
    System.Configuration.Configuration config = ConfigurationManager.OpenMappedExeConfiguration(configFileMap, ConfigurationUserLevel.None);
    MachineKeySection section = (MachineKeySection)config.GetSection("system.web/machineKey");
    section.ValidationKey = validationKey;
    section.DecryptionKey = decryptionKey;
    config.Save();
}
于 2020-01-20T14:03:26.260 回答