asp.net中强制https用于整个网站的最佳方式?大约6个月前,我推出了一个网站,每个请求都需要通过https。当我找到确保页面的每个请求都通过https的唯一方法是在页面加载事件中检查它。如果请求不是通过http,我会response.redirect(“ https://example.com ”)有没有更好的方法 - 理想情况下web.config中的一些设置?
3 回答
Qyouu
TA贡献1786条经验 获得超11个赞
在IIS10(Windows 10和Server 2016)中,从版本1709开始,有一个新的,更简单的选项,用于为网站启用HSTS。
微软描述新方法的优点在这里,并提供了如何以编程方式或通过直接编辑ApplicationHost.config文件(就像web.config文件,但在IIS级别上运行,而不是个别网站实施变更许多不同的例子)。ApplicationHost.config可以在C:\ Windows \ System32 \ inetsrv \ config中找到。
我在这里概述了两个示例方法,以避免链接腐烂。
方法1 - 直接编辑ApplicationHost.config文件在<site>
标记之间添加以下行:
<hsts enabled="true" max-age="31536000" includeSubDomains="true" redirectHttpToHttps="true" />
方法2 - 命令行:从提升的命令提示符(即在CMD上右键并以管理员身份运行)执行以下操作。请记住将Contoso与IIS管理器中显示的站点名称进行交换。
c:cd C:\WINDOWS\system32\inetsrv\ appcmd.exe set config -section:system.applicationHost/sites "/[name='Contoso'].hsts.enabled:True" /commit:apphost appcmd.exe set config -section:system.applicationHost/sites "/[name='Contoso'].hsts.max-age:31536000" /commit:apphost appcmd.exe set config -section:system.applicationHost/sites "/[name='Contoso'].hsts.includeSubDomains:True" /commit:apphost appcmd.exe set config -section:system.applicationHost/sites "/[name='Contoso'].hsts.redirectHttpToHttps:True" /commit:apphost
如果您在访问受限的托管环境中,Microsoft在该文章中提供的其他方法可能是更好的选择。
请记住,IIS10版本1709现在可在Windows 10上使用,但对于Windows Server 2016,它位于不同的发行版轨道上,不会作为修补程序或Service Pack发布。有关1709的详细信息,请参见此处。
- 3 回答
- 0 关注
- 979 浏览
添加回答
举报
0/150
提交
取消