2012-08-30 14 views
5

Próbuję włączyć uwierzytelnianie Anonymous na miejscu przy użyciu C#nie mogę ustawić uwierzytelnianie IIS programowo przy użyciu C#

Ten kod rzuca wyjątek napisane na dole Szukałem wszędzie mogę znaleźć odpowiedzi jak go rozwiązać:

using (ServerManager serverManager = new ServerManager()) 
{ 
    Configuration configapp = serverManager.GetApplicationHostConfiguration(); 
    ConfigurationSection anonymousAuthenticationSection = configapp.GetSection("system.webServer/security/authentication/anonymousAuthentication", Site1); 
    anonymousAuthenticationSection["enabled"] = false; 

    serverManager.CommitChanges(); 
} 

wyjątek:

System.IO.FileNotFoundException: Filename: \\?\C:\Windows\system32\inetsrv\config\applicationHost.config 
Error: Unrecognized configuration path 'MACHINE/WEBROOT/APPHOST/Site1' 
    at Microsoft.Web.Administration.Interop.AppHostWritableAdminManager.GetAdminSection(String bstrSectionName, String bstrSectionPath) 
    at Microsoft.Web.Administration.Configuration.GetSectionInternal(ConfigurationSection section, String sectionPath, String locationPath) 
    at Microsoft.Web.Administration.Configuration.GetSection(String sectionPath, String locationPath) 
    at FlowSuiteWebConfigurator.label.button1_Click(Object sender, EventArgs e) in C:\Users\Administrator\documents\visual studio 2010\Projects\Projectname\Projectname\Form1.cs:line 264 

Czy ktoś mnie prowadził, jak to naprawić?

+0

Widząc, jak masz C# określili, zgaduję to ASP.NET. Jeśli chcesz odmówić użytkownikom, którzy nie są uwierzytelnieni, lepiej byłoby zrobić to w web.config swojej rzeczywistej witryny. Powinno to uniemożliwić nieupoważnionym użytkownikom dostęp do Twojej witryny. seekerOfKnowledge

+0

Używam C# jako formularza konfiguratora internetowego IIS. i chcę najpierw wyłączyć programowanie anon programowo, a następnie zastosować tylko "uwierzytelnianie systemu Windows" – user1593455

Odpowiedz

2

Trochę późno może (1 rok i pół roku po ...), ale problem wydaje się być w swojej definicji lokalizacji (2nd parametr configapp.GetSection): wyjątek powiedział Error: Unrecognized configuration path 'MACHINE/WEBROOT/APPHOST/Site1'

Testowany lokalnie na mój komputer, nie mam wyjątku z poprawną nazwą lokalizacji, taką jak Default Web Site/MyCustomPortal.

Uwaga: odniesienie dodana jest Microsoft.Web.Administration.dll pod C:\Windows\System32\inetsrv\, a te linie kodu zajrzeć do pliku applicationHost.config znajduje się w C:\Windows\System32\inetsrv\config

Powiązane problemy