Powershell: 更新IIS web.config

3

需要通过添加SSL来保护cookie并更新IIS web.config。

当前的Web.Config中包含以下片段。

<configuration> 
  <system.web> 
       <authentication mode="Forms">
            <forms loginUrl="~/Account/LogOn" timeout="2880" />
       </authentication>
  </system.web> 
</configuration> 

希望将system.web部分更新如下。

需要修改(假设您会使用Set-WebConfiguration)

<authentication mode="Forms">
to
<authentication mode="Forms" requireSSL="true">

需要添加(假设您将使用Add-WebConfiguration)
<httpCookies httpOnlyCookies="true" />

成功地使用以下内容更新web.config文件:
Add-WebConfigurationProperty -pspath "iis:\Sites\FMC" -filter "/appSettings" -name "." -Value @{key='fmcDataContextType';value='SqlRepository.fmcDataContext'}

但似乎无法找到适合此目的的正确格式。

see - lloyd
你链接的问题的两个答案都是直接修改XML。这并不推荐,因为没有模式验证,通过改变XML可能会破坏你的网站。 - Peter Hahndorf
@Peter-Hahndorf 两个更改已经成功测试并推荐使用。如果不以这种方式进行更改,对于大型农场,您有什么其他建议吗? - Fredrick Campbell
FredrickCampbell - 我并不是说直接修改XML不能起作用,如果你非常小心的话,它确实可以工作。但是,如果你拼错了属性名称,你的脚本可能会正常运行,但网站将无法正常工作。有一个COM API可用于更改IIS配置。而且,在WMI、托管代码、PowerShell和appcmd.exe中都有其包装器。哦,我在谈论Lloyd的链接,而不是你的问题。我注意到我忘记了@lloyd。 - Peter Hahndorf
@Peter-Hahndorf 感谢您的反馈,正在尝试您的解决方案。您的解决方案运行良好 +1。 - lloyd
1个回答

3

For requireSSL:

Set-WebConfigurationProperty -pspath 'MACHINE/WEBROOT/APPHOST/Default Web Site'  -filter "system.web/authentication/forms" -name "requireSSL" -value "True"

使用httpOnlyCookies来:

Set-WebConfigurationProperty -pspath 'MACHINE/WEBROOT/APPHOST/Default Web Site'  -filter "system.web/httpCookies" -name "httpOnlyCookies" -value "True"

如果要添加 httpOnlyCookies,请使用以下方法:

Add-WebConfigurationProperty  //system.web 'MACHINE/WEBROOT/APPHOST/Default Web Site' -Name httpCookies -Value "True"

你需要将默认网站(Default Web Site)替换为你的网站名称。

啊,这就是我要的。谢谢! - Fredrick Campbell

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接