如何检查当前页面是否在ASP.Net中使用SSL?

时间:2011-11-29 00:40:45

标签: asp.net ssl https

我有一个网站,根据设计和客户端的偏好,可以使用HTTP或HTTPS提供服务。客户公司只需选择是否使用http://或https://链接到我们的站点,IIS将完成其余工作。正在向页面添加一项功能,该页面处理只能通过SSL查看的敏感信息。客户已同意在不使用HTTPS连接时,应在此页面上禁用此附加功能。

在Page_Load事件中,我想添加一个IF语句,该语句检查当前是否正在通过HTTPS查看该页面,以显示或禁用此可选功能。我可以阅读URL以查看它是否以https://开头,但担心方法不安全。

在Page_Load事件期间是否有可以检查以测试HTTPS的属性?

2 个答案:

答案 0 :(得分:27)

您正在寻找Request.IsSecureConnection

答案 1 :(得分:1)

如果您正在使用IIS 7(或更高版本)并且计划通过HTTP连接将到达您页面的请求重定向到HTTPS连接,请考虑使用IIS URL Rewrite Module

您将能够配置解决方案而不是对其进行编码。例如,您可以配置重定向规则以获取http://my.host.com/my-secure-page.aspx之类的网址,并将其重定向到https://my.host.com/my-secure-page.aspx

你可以使用这个模块做更多的事情,它的美妙之处在于你可以在不触及应用程序代码的情况下完成它。

有关详细信息,请参阅Redirect HTTP to HTTPS with IIS 7