【问题标题】:Coldfusion - determine if site is being accessed through intra or extranetColdfusion - 确定是通过内部网还是外部网访问站点
【发布时间】:2014-03-28 10:30:15
【问题描述】:

我有一个简单的问题(我想!)。我的 CF 网站上有一个超链接,如果该网站是通过我们的 Intranet 访问的,或者在现场通过我们的 Extranet 访问,该超链接需要有所不同。

如何在 Coldfusion 中确定这一点?如果通过我们的外联网访问该站点,我只需将超链接更改为 https。

谢谢

【问题讨论】:

  • 您能否通过他们的 IP 地址确定您的 Intranet 的用户?如果是这样,您可以尝试检查并修改链接。这个 UDF 可能有用:cflib.org/udf/isIPInRange
  • 我认为强制内网用户使用 https 并为每个人重定向 http->https 可能是更好的做法。 (我知道使用 https 的局限性,即对于非缓存资产,但认为值得标记)。
  • cgi.auth_user 可能会帮助您。
  • 如果您希望 Extranet 上的人仍然使用 https,那么您可以使用协议中立的 URL,而无需任何服务器端代码:链接

标签: coldfusion hyperlink intranet extranet


【解决方案1】:

我同意 Neokoenig 的观点 - 为什么要给自己选择何时提供 HTTP/HTTPS 的问题 - 除非你在不同的域名上提供它们,并且你不想为 2 个 SSL 证书付费。

但取决于您如何允许访问 Intranet - 您是在检查用户的 IP 地址以获取内部 IP 以提供 Intranet 服务)还是仅检测他们用于访问它的 URL(例如“intranet.company. com" 或 "extranet.company.com") 以便应用程序了解它所服务的应用程序类型?

无论哪种方式,请尝试转储 CGI 结构以查看可供您使用的各种服务器变量。

【讨论】:

    【解决方案2】:

    如果您的整个 Intranet 都在代理后面,CGI.REMOTE_ADD 可以帮助您实现这一点,因为 CGI.REMOTE_ADD 将返回代理服务器的地址,您可以通过此地址识别用户。

    【讨论】: