以编程方式更改IIS网站的SSL设置
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了以编程方式更改IIS网站的SSL设置相关的知识,希望对你有一定的参考价值。
如何使用c#以编程方式更改IIS中的默认网站的SSL设置功能以要求SSl?我知道要使用Microsoft.Web.Administration的服务器管理器,但我不知道如何编辑功能,或者如果可以的话。
编辑:我不是要更改应用程序设置,而是访问“SSL设置”功能。我可以访问设置并将启用的协议更改为https,但这不会做任何事情,因为在IIS中,https也会启用http,反之亦然。为了只接受https请求,我需要访问SSL设置并将其更改为要求ssl。
答案
您需要从Microsoft.Web.Administration
中描述的应用程序中引用程序集this answer。
然后,您可以使用以下代码:
// Default website always has id 1
int defaultSiteId = 1;
// Get Server Manager
ServerManager serverManager = new ServerManager();
// Get default website (Always has id 1)
var defaultSite = serverManager.Sites.First(s => s.Id == defaultSiteId);
// Get reference to config file where host configuration is stored
Configuration config = serverManager.GetApplicationHostConfiguration();
// Get reference to the section that has the SSL settings for the website
ConfigurationSection accessSection = config.GetSection("system.webServer/security/access", defaultSite.Name);
// Change the sslFlags to require ssl
// (See here for reference: https://docs.microsoft.com/en-us/iis/configuration/system.webServer/security/access )
accessSection.SetAttributeValue("sslFlags", "Ssl");
// Save and apply the changes
serverManager.CommitChanges();
sslFlags
描述了https://docs.microsoft.com/en-us/iis/configuration/system.webServer/security/access属性的可能值
以上是关于以编程方式更改IIS网站的SSL设置的主要内容,如果未能解决你的问题,请参考以下文章