【发布时间】:2012-10-30 23:11:57
【问题描述】:
我目前有一个网站,在某些地方使用 iFrame 从我们的 Intranet 加载页面(这是不可避免的)。我想要做的是能够检测客户端是否能够从其当前位置访问 Intranet 页面。我有以下代码,但显然它只检查服务器是否可以联系 Intranet(剧透警报:它完全可以)。
public bool IsAvailable()
{
HttpWebRequest httpReq = (HttpWebRequest)WebRequest.Create("http://localintranetsite/");
httpReq.AllowAutoRedirect = false;
try
{
HttpWebResponse httpRes = (HttpWebResponse)httpReq.GetResponse();
if (httpRes.StatusCode == HttpStatusCode.NotFound)
return false;
else
return true;
}
catch
{
return false;
}
}
当然,如果可能的话,我希望能够做到这一点,而不必依赖检测网站用户的 IP 地址。
当无法联系到 Intranet 站点时,我的另一个选择是创建一个自定义 404 页面,但我不确定我能否做到这一点(或者如果我能做到的话,我会怎么做)。
如果加载 iFrame 的代码在从 javascript 调用的 Web 服务中有所不同,那么虽然我的 Web 服务中的 asp.net 解决方案是理想的,但 javascript 函数也可以工作。
我(没有帮助)当前的解决方案尝试检查是否可以访问 Intranet 站点,但它只能检查 Web 服务器是否可以访问它,而不是客户端。
对于那些好奇的人,这是 javascript(通过 jQuery)方式(它不起作用,因为它是跨域的):
$.ajax({
type: 'HEAD',
url: 'http://intranetsite/',
success: function () {
local = true;
},
error: function () {
local = false;
}
})
【问题讨论】:
标签: c# javascript jquery asp.net ajax