我想使用IIS中使用的算法生成加密密码。
加密值如下所示(在applicationHost.config中):
<applicationPools>
<add name="MyAppPool">
<processModel identityType="SpecificUser" userName="TestUser"
password="[enc:IISWASOnlyAesProvider:N8mr4dLU6PnMW5xlmCWg6914cKePgeU0fTbxew
ZppiwyTLmBQh0mZnFywQO78pQY:enc]" />
</add>
</applicationPools>
参考:http://technet.microsoft.com/en-us/library/dd163536.aspx
我看到机器键存储在这里:
C:\ProgramData\Microsoft\Crypto\RSA\MachineKeys
参考:http://www.asprangers.com/post/2012/05/03/MachineKeys-on-IIS-7x-Inside-Out.aspx
我想写一些c#来做这件事,但我不是加密专家......我可以使用明文密码和机器密钥来生成下面接受的SO答案中的代码吗?加密密码如上图所示?
答案 0 :(得分:0)
为什么要尝试生成IIS之类的,是否将其存储在IIS配置中?如果配置API应该自动为您执行,您可以使用Microsoft.Web.Administration.ServerManager,例如:
using(ServerManager serverManager = new ServerManager()) {
Configuration config = serverManager.GetApplicationHostConfiguration();
ConfigurationSection sitesSection = config.GetSection("system.applicationHost/sites");
ConfigurationElement virtualDirectoryDefaultsElement = sitesSection.GetChildElement("virtualDirectoryDefaults");
virtualDirectoryDefaultsElement["password"] = @"asd";
serverManager.CommitChanges();
}