【发布时间】:2014-05-12 16:02:27
【问题描述】:
我需要从 .net 调用经典 asp 页面,因为我需要在我的 .net 应用程序中使用经典 asp 页面的功能。
目前我知道如何做到这一点的唯一方法是这样的:
MeetingCentres.Services.ClassicWhyGo.file_get_contents("http://someurl.asp?inputValue=£$%$£"%$£"%$£%)
public static string file_get_contents(string fileName)
{
string sContents = string.Empty;
if (fileName.ToLower().IndexOf("http:") > -1)
{ // URL
System.Net.WebClient wc = new System.Net.WebClient();
byte[] response = wc.DownloadData(fileName);
sContents = System.Text.Encoding.ASCII.GetString(response);
}
else
{
// Regular Filename
System.IO.StreamReader sr = new System.IO.StreamReader(fileName);
sContents = sr.ReadToEnd();
sr.Close();
}
return sContents;
}
...但这意味着经典的 asp 页面是通过 http 访问的,因此是公开的。
当敏感信息被返回时,我需要如何保护这个页面。
我宁愿不公开这个 asp 页面。
据我所知,在 IIS 中似乎无法使页面仅在网站根目录上方可用?
否则,如果它必须是公开的,我会认为我可以检查 calling.net 应用程序的 IP 地址并确保它在同一台服务器上。
有没有更好的方法来做到这一点?还是上面的安全..?
【问题讨论】:
-
旁注:此声明“通过 http 访问并因此公开可用”是您的个人意见 - 通过 HTTP 访问与公开可用无关。 IE。我的机器在localhost 上通过 HTTP 提供了 ASP.Net 示例站点 - 你能找到它吗?外部可用性取决于您的网络配置,与 http 协议没有直接关系。
-
我说的是我目前的设置,我正在寻找解决方案。感谢您的澄清
-
您正在考虑您当前的设置,帖子中没有关于您的站点/公共访问设置的信息。可能您可以从非默认端口为其他站点提供服务,并在防火墙上阻止它在框外访问...查看您的设置和更新帖子,以便清楚您当前的设置是您想要阻止的(究竟是什么“公开可访问”在您的情况下是指)。
-
您能否将 Classic ASP 作为单独的网站运行在不同的端口上,该端口可以通过防火墙防止外部访问?
-
@John 是的,这就是我现在所做的
标签: asp.net iis asp-classic