我陷入了一些我应该继续前进的事情,但它让我疯狂...... 我可以使用以下命令以编程方式更新自托管WCF服务的SSL证书信息:
Dim config As Microsoft.Web.Administration.Configuration = _
serverManager.GetApplicationHostConfiguration
site.Bindings.Clear()
Dim binding = site.Bindings.Add(ipport, cert.GetCertHash, store.Name)
serverManager.CommitChanges()
并且还可以使用以:
开头的已知文件路径更改本地web.config的各个部分Dim cfg As System.Configuration.Configuration = _
System.Web.Configuration.WebConfigurationManager.OpenMappedWebConfiguration(ConfigFileMap, target)
但是如果我尝试使用:
深入到system.webServer / security / accessDim accessSection = cfg.GetSection("system.webServer/security")
我得到Nothing / null并且进一步挖掘有用地为“System.Configuration.IgnoreSection”部分生成了这个状态,这显然表明System.Configuration不想对那个特定部分玩得很好 - 即使它没有被拒绝在应用程序中访问我尽可能接近。
另一方面,如果我尝试使用Microsoft.Web.Administration,我只能弄清楚如何更改applicationHost.config,而不是本地web.config。
似乎唯一希望将客户端证书要求(sslFlags设置)放在本地web.config中的是IIS管理器(如果它位于applicationHost.config中,它也不会正确显示设置)< / p>
显然有各种各样的方法可以做到这一点,但我不敢相信没有一个简单的点网方式(除了编辑xml)。有谁知道我做错了什么?
答案 0 :(得分:0)
卫生署!!!显然我需要学习阅读手册(尽管MS并不容易)。
您可以这样做:
Using serverManager As New ServerManager
Dim config As Microsoft.Web.Administration.Configuration = _
serverManager.GetWebConfiguration("site name", "/application")
Dim accessSection As Microsoft.Web.Administration.ConfigurationSection = _
config.GetSection("system.webServer/security/access")
accessSection("sslFlags") = "Ssl,SslRequireCert"
serverManager.CommitChanges()
End Using
追溯显而易见的链接:Relevant StackOverflow Question