2012-08-30 13 views
5

Sto cercando di trasformare di autenticazione anonima su un sito utilizzando C#Non riesco a impostare l'autenticazione di IIS programatically utilizzando C#

Questo codice genera un'eccezione scritto in fondo ho cercato ovunque i cant trovare risposta come risolverlo:

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

    serverManager.CommitChanges(); 
} 

L'eccezione:

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 

può qualcuno mi guida come risolvere questo problema?

+0

Visto che hai C# tagged, sto cercando di indovinare questo è ASP.NET. Se vuoi negare a tutti gli utenti che non sono autenticati, è meglio farlo sul web.config del tuo sito web attuale. Questo dovrebbe impedire a utenti non autorizzati di accedere al tuo sito. seekerOfKnowledge

+0

Attualmente sto usando C# come modulo di configurazione web IIS. e voglio innanzitutto disabilitare anon login logicamente e quindi applicare solo "autenticazione di Windows" – user1593455

risposta

2

un po 'tardi forse (1 anno e mezzo dopo ...), ma il problema sembra essere nella definizione posizione (2 ° parametro di configapp.GetSection): l'eccezione detto Error: Unrecognized configuration path 'MACHINE/WEBROOT/APPHOST/Site1'

Testato localmente su la mia macchina, non ho eccezioni con un nome di posizione valido come Default Web Site/MyCustomPortal.

Nota: il riferimento aggiunto è Microsoft.Web.Administration.dll sotto C:\Windows\System32\inetsrv\, e quelle linee di codice guardare nel file applicationHost.config si trova nella C:\Windows\System32\inetsrv\config

Problemi correlati