我想创建一个相对链接来切换当前协议 httphttps. 。我工作的最后一个地方在服务器上设置了一些东西,以便您可以实现这一点,但我不太记得它,而且我从来不知道它是如何工作的。

这样做的理由是,我不需要在需要在生产和开发环境之间移动的文件中硬编码服务器名称。

有没有办法让它在 IIS 6.0 中工作?


编辑:

我正在使用.NET,但我创建的“链接”不会动态生成。如果您确实想要详细信息,我在 Umbraco 中使用重定向宏,需要传入 URL。

有帮助吗?

解决方案 5

我们最终购买ISAPI重写到某些网址的web服务器级别执行重定向。这不是很我一直在寻找,当我问这个问题的答案,但它是我们的作品。

其他提示

下面是在VB.NET一个简单的方案:

Imports System.Web.HttpContext

Public Shared Sub SetSSL(Optional ByVal bEnable As Boolean = False)
  If bEnable Then
    If Not Current.Request.IsSecureConnection Then
      Dim strHTTPS As String = "https://www.mysite.com"
      Current.Response.Clear()
      Current.Response.Status = "301 Moved Permanently"
      Current.Response.AddHeader("Location", strHTTPS & Current.Request.RawUrl)
      Current.Response.End()
    End If
  Else
    If Current.Request.IsSecureConnection Then
      Dim strHTTP As String = "http://www.mysite.com"
      Current.Response.Clear()
      Current.Response.Status = "301 Moved Permanently"
      Current.Response.AddHeader("Location", strHTTP & Current.Request.RawUrl)
      Current.Response.End()
    End If
  End If
End Sub

用法:

'Enable SSL
SetSSL(True)

'Disable SSL
SetSSL(False)

您可以添加这对每个页面的Page_Load中。或者你可以做一些像我一样,并创建要固定在您的global.asax,并在的Application_BeginRequest方法设置相应的SSL文件夹或页面的列表。而这将与相关的链接和页面的HTTP或HTTPS状态的工作永远是你告诉它是在代码中。

我有这样的代码在地方上的几个网站。但是,作为一个例子,如果你去 https://www.techinsurance.com 你会自动发现它重定向到http因为主页并不需要保护。 /:如果您尝试打一个需要保护诸如 HTTP页面相反会发生/www.techinsurance.com/quote/login.aspx

您可能会注意到,我使用301(永久)重定向。这里的附带好处是搜索引擎将基于一个301重定向代码更新自己的指数。

哪些语言/框架您使用的?

您应该能够创建自己的功能,您将在相对页面传递并从HttpRequest对象和服务器对象推断(同样取决于语言或框架)什么主机和URL,然后只是简单重定向到该网址,但以https作为前缀。

下面是一个很好的 CodeProject上文章上通过指定这样做要使用SSL某些目录和文件。这将根据自己的需求自动切换这些和从HTTPS。

我已经用这个项目,和它的作品真的很好。

这与我给出的答案相同 这里:

是的你可以。我推荐这个免费的开源 DLL,它可以让您指定哪些页面和文件夹需要 SSL,哪些不需要:

http://www.codeproject.com/KB/web-security/WebPageSecurity_v2.aspx

因此,您可以在 web.config 中设置一个安全页面,如下所示:

<secureWebPages encryptedUri="www.example.com" unencryptedUri="www.example.com" mode="RemoteOnly" >
    <files>
      <add path="/MustBeSecure.aspx" secure="Secure" />
    </files>
</secureWebPages>
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top