asp.net中强制https用于整个网站的最佳方式?

asp.net中强制https用于整个网站的最佳方式?

大约6个月前,我推出了一个网站,每个请求都需要通过https。当我找到确保页面的每个请求都通过https的唯一方法是在页面加载事件中检查它。如果请求不是通过http,我会response.redirect(“ https://example.com ”)

有没有更好的方法 - 理想情况下web.config中的一些设置?


慕桂英4014372
浏览 924回答 3
3回答

Qyouu

在IIS10(Windows 10和Server 2016)中,从版本1709开始,有一个新的,更简单的选项,用于为网站启用HSTS。微软描述新方法的优点在这里,并提供了如何以编程方式或通过直接编辑ApplicationHost.config文件(就像web.config文件,但在IIS级别上运行,而不是个别网站实施变更许多不同的例子)。ApplicationHost.config可以在C:\ Windows \ System32 \ inetsrv \ config中找到。我在这里概述了两个示例方法,以避免链接腐烂。方法1&nbsp;- 直接编辑ApplicationHost.config文件在<site>标记之间添加以下行:<hsts&nbsp;enabled="true"&nbsp;max-age="31536000"&nbsp;includeSubDomains="true"&nbsp;redirectHttpToHttps="true"&nbsp;/>方法2&nbsp;- 命令行:从提升的命令提示符(即在CMD上右键并以管理员身份运行)执行以下操作。请记住将Contoso与IIS管理器中显示的站点名称进行交换。c:cd&nbsp;C:\WINDOWS\system32\inetsrv\ appcmd.exe&nbsp;set&nbsp;config&nbsp;-section:system.applicationHost/sites&nbsp;"/[name='Contoso'].hsts.enabled:True"&nbsp;/commit:apphost appcmd.exe&nbsp;set&nbsp;config&nbsp;-section:system.applicationHost/sites&nbsp;"/[name='Contoso'].hsts.max-age:31536000"&nbsp;/commit:apphost appcmd.exe&nbsp;set&nbsp;config&nbsp;-section:system.applicationHost/sites&nbsp;"/[name='Contoso'].hsts.includeSubDomains:True"&nbsp;/commit:apphost appcmd.exe&nbsp;set&nbsp;config&nbsp;-section:system.applicationHost/sites&nbsp;"/[name='Contoso'].hsts.redirectHttpToHttps:True"&nbsp;/commit:apphost如果您在访问受限的托管环境中,Microsoft在该文章中提供的其他方法可能是更好的选择。请记住,IIS10版本1709现在可在Windows 10上使用,但对于Windows Server 2016,它位于不同的发行版轨道上,不会作为修补程序或Service Pack发布。有关1709的详细信息,请参见此处。
打开App,查看更多内容
随时随地看视频慕课网APP