使用IISWASOnlyAesProvider生成加密的IIS应用程序池标识密码

时间:2013-11-25 04:37:39

标签: iis encryption iis-7 cryptography aes

我想使用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答案中的代码吗?加密密码如上图所示?

Using AES encryption in C#

1 个答案:

答案 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();
    }