在我的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);
答案 0 :(得分:0)
首先,我会检查您保存的文件是否与您正在阅读的文件相同:
echo 3 > /proc/sys/vm/drop_caches
顺便说一下, GetConfigurationSection 方法的类和命名空间是什么?