MachineKey更改未反映在web.config中

时间:2018-03-03 18:24:13

标签: c# web-config forms-authentication configurationmanager machinekey

在我的Web应用程序中,管理员有能力将验证方法/算法更改为SHA1到HMACSHA256,HMACSHA384等。

在代码中,当我使用ConfigurationManager从web.config中检索值时,它显示为已更新。

但是,当我打开Web.config本身时,该值不会出现在MachineKey部分中。它为什么现在出现?

编辑:我使用的技术是Visual Studio C#和MVC。 web.config的一部分如下:

  <system.web>
<machineKey validationKey="22FEA7D6533FCCE331C2342A1801051F5E2890749CB2D5EF2EEABF8B0D944F389F46FA061D1A203EB75F3A9197914299676917FFD355456CFA0B49CA4C30B348"
  decryptionKey="30B2FA2A8C54665E18D9A35E3541BFED6A3E8A640DBA4070" />
<authentication mode="Forms">
  <forms name="FormsAuth1" loginUrl="https://localhost/OidcApplication/Oidc/Authenticate" timeout="2880" requireSSL="false" />
</authentication>
<compilation debug="true" targetFramework="4.5.2" />
<httpRuntime targetFramework="4.5.2" />
<httpModules>
  <add name="ApplicationInsightsWebTracking" type="Microsoft.ApplicationInsights.Web.ApplicationInsightsHttpModule, Microsoft.AI.Web" />
</httpModules>

这是我检索机器键值的方法:

machineKeyConfig = (MachineKeySection)GetConfigurationSection("system.web/machineKey");

这就是我设置机器键值的方法:

var machineKeyConfig = (MachineKeySection)GetConfigurationSection("system.web/machineKey");

machineKeyConfig.DecryptionKey = machineKeySettings.DecryptionKey;
machineKeyConfig.Validation = machineKeySettings.Validation;
machineKeyConfig.ValidationKey = machineKeySettings.ValidationKey;
machineKeyConfig.CurrentConfiguration.Save(ConfigurationSaveMode.Minimal);

1 个答案:

答案 0 :(得分:0)

首先,我会检查您保存的文件是否与您正在阅读的文件相同:

echo 3 > /proc/sys/vm/drop_caches

顺便说一下, GetConfigurationSection 方法的类和命名空间是什么?