【C#】使用ServerManager類配置IIS身份驗證設置
當前位置:點晴教程→知識管理交流
→『 技術文檔交流 』
我正在使用ServerManager類(來自Microsoft.Web.Administration)在運行IIS 7的服務器上創(chuàng)建應用程序,我想配置應用程序是否在應用程序基礎上使用匿名身份驗證或 Windows身份驗證,因此我不能簡單地要求IT更改根站點上的設置,該應用程序的內容屬于第三方,因此我不允許更改應用程序內的web.config文件。
Application類沒有公開任何有用的屬性,但也許我可以使用ServerManager的GetApplicationHostConfiguration方法完成某些事情? 聽起來你希望改變網站的互聯網信息系統配置,如果這是正確的,這樣的事情應該有效:
using (ServerManager serverManager = new ServerManager())
{
Configuration config = serverManager.GetWebConfiguration("Contoso");
ConfigurationSection authorizationSection = config.GetSection("system.webServer/security/authorization");
ConfigurationElementCollection authorizationCollection = authorizationSection.GetCollection();
ConfigurationElement addElement = authorizationCollection.CreateElement("add");
addElement["accessType"] = @"Allow";
addElement["roles"] = @"administrators";
authorizationCollection.Add(addElement);
serverManager.CommitChanges();
} 上面的代碼允許您創(chuàng)建一個授權規(guī)則,允許組中的特定用戶訪問特定站點。在這種情況下,該網站是Contoso。 然后,這將禁用該站點的匿名身份驗證,然后啟用Basic&該站點的Windows身份驗證: using(ServerManager serverManager = new ServerManager())
{
Configuration config = serverManager.GetApplicationHostConfiguration();
ConfigurationSection anonymousAuthenticationSection = config.GetSection("system.webServer/security/authentication/anonymousAuthentication", "Contoso");
anonymousAuthenticationSection["enabled"] = false;
ConfigurationSection basicAuthenticationSection = config.GetSection("system.webServer/security/authentication/basicAuthentication", "Contoso");
basicAuthenticationSection["enabled"] = true;
ConfigurationSection windowsAuthenticationSection = config.GetSection("system.webServer/security/authentication/windowsAuthentication", "Contoso");
windowsAuthenticationSection["enabled"] = true;
serverManager.CommitChanges();
} 或者,您可以根據需要添加IIS管理器用戶帳戶,您可以設置為某些權限來操縱和管理其他應用程序。 using (ServerManager serverManager = new ServerManager())
{
Configuration config = serverManager.GetAdministrationConfiguration();
ConfigurationSection authenticationSection = config.GetSection("system.webServer/management/authentication");
ConfigurationElementCollection credentialsCollection = authenticationSection.GetCollection("credentials");
ConfigurationElement addElement = credentialsCollection.CreateElement("add");
addElement["name"] = @"ContosoUser";
addElement["password"] = @"P@ssw0rd";
addElement["enabled"] = true;
credentialsCollection.Add(addElement);
serverManager.CommitChanges();
} 互聯網信息系統具有很大的靈活性,它非常強大,通過那里參考的文件也非常深入。這些示例很難適應您的特定用途,或者至少提供一定程度的理解,以使其按照您的意愿行事。 希望有幫助,這些例子來自here 該文章在 2021/5/11 15:46:34 編輯過 |
關鍵字查詢
相關文章
正在查詢... |