为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

C#
慕桂英4014372 2019-08-23 16:32:47
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的详细信息,请参见此处


查看完整回答
反对 回复 2019-08-23
  • 3 回答
  • 0 关注
  • 928 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信