2

以下のコードを使用して、IIS7 のアプリケーションで匿名アクセスを有効にしようとしています。

ConfigurationSection config = server.GetWebConfiguration(webSiteName).GetSection("system.webServer/security/authentication/anonymousAuthentication", "/" + applicationName);
config.OverrideMode = OverrideMode.Allow;
config["enabled"] = true;

ただし、次のエラーが発生します。

Failed: The request is not supported. (Exception from HRESULT: 0x80070032)

アプリケーションの匿名アクセスを変更するにはどうすればよいですか?

ありがとう、ng93

4

1 に答える 1

1

セキュリティ上の理由から、このセクションは ApplicationHost.config レベルでロックされているため、上記のコードは無効です。使用しようとしているコードでは、Web.config で設定しようとしています。本当に必要な場合は、最初に GetApplicationHost 呼び出しから要求し、overrideMode を設定してから、GetWebConfiguration からセクションを再度取得する必要があります。しかし、全体として、デプロイメントやその他のメカニズムによって web.config で誤って変更されないように、代わりにサーバー レベルでその値を設定することをお勧めします。

そのためには、代わりに次のことをお勧めします。

string webSiteName = "Default Web Site";
string applicationName = "MyApp";

using (ServerManager server = new ServerManager())
{
    ConfigurationSection config = server.GetApplicationHostConfiguration()
                                        .GetSection(@"system.webServer/security/
                                                     authentication/
                                                     anonymousAuthentication", 
                                                     webSiteName + "/" + applicationName);
    config.OverrideMode = OverrideMode.Allow;
    config["enabled"] = true;
    server.CommitChanges();
}
于 2013-11-18T17:51:45.300 に答える