ドメインユーザー(MYDOMAIN \ someuser)として実行するように構成されたIIS7のサイトがいくつかあります。
Microsoft.Web.Administration名前空間を使用してサーバー構成をスキャンしていますが、次の「なりすまし」サイトの1つにアクセスすると、例外がスローされます。
using (ServerManager sm = new ServerManager()) {
foreach (Site site in sm.Sites) {
foreach (Application app in site.Applications.Reverse()) {
foreach (VirtualDirectory vdir in app.VirtualDirectories.Reverse()) {
var config = app.GetWebConfiguration();
foreach (var locationPath in config.GetLocationPaths()) {
// error occurs in GetLocationPaths()
}
}
}
}
}
実際のエラーメッセージは次のとおりです。
COMException was unhandled
Filename: \\?\C:\Windows\system32\inetsrv\config\applicationHost.config
Line number: 279
Error: Failed to decrypt attribute 'password' because the keyset does not exist
IISは、暗号化されたMYDOMAIN \ someuserパスワードをapplicationHost.configに格納しているようです。これは、セキュリティの点で優れていますが、ServerManagerにこれを復号化させる方法がわかりません。
ServerManagerにこれを復号化させる方法、またはパスワードをプレーンテキストで保存するようにIISに指示する方法に関するヒントはありますか?
ちなみに、これはWindows7RCのIIS7にあります。