【问题标题】:Server.Transfer from ASP.NET to ASPServer.Transfer 从 ASP.NET 到 ASP
【发布时间】:2014-08-26 00:30:53
【问题描述】:

没有“Server.Transfer from ASP to ASP.Net”的重复项;-)

在 IIS Web 服务器(运行经典 ASP)上,我有一个用户被远程重定向到的本地 URL。据推测,此调用是使用查询字符串中的数据进行的或通过 POST 数据传输的。发出此请求时,我需要在服务器端删除此数据(尤其是查询字符串),因此客户端将看不到任何数据。

例如,用户被引导至http://example.com/dir/?data=payload。这是请求的内容,也是用户浏览器将显示的内容。现在我需要请求资源来剥离 QueryString 和 Form 数据,以便用户最终进入例如http://example.com/dir/.

在 MSDN 上,他们有 HttpServerUtility.Transfer,它为经典的 Server.Transfer 方法添加了一个布尔值,允许保留或清除数据。但是,当我在 aspx 文件传输到 asp 文件中尝试此操作时,我收到 0x80004005 HTTP 异常(“未找到请求类型 'GET' 的 http 处理程序”) .

  1. 是否可以从 ASP.NET 文件“重定向”到 Classic 文件?
  2. 还有其他更好的方法来删除服务器端的请求数据吗?

【问题讨论】:

    标签: asp.net http asp-classic


    【解决方案1】:

    我的选择是:

    1. 在页面上使用不带查询字符串的重定向:Response.Redirect() 这也会清除帖子数据。

    2. 执行HTTP Request 以抓取其他页面的 HTML,并在当前页面中查看。

    我可能会选择选项 #1

    【讨论】:

    • 太酷了Response.Redirect 也丢失了请求数据——我不知道。无论如何,这会导致另一个往返,因为浏览器得到一个302 Found。感谢您提供此解决方案,但我仍然对问题 1 的答案感兴趣。;-)
    • 请求数据是什么意思?如果您指的是引用者等。在进行重定向之前,您需要在查询字符串或会话中附加它,并且重定向页面应该从那里读取。或者使用选项 2,您可以将请求数据作为变量附加到 headers、querystring 或 postdata 中。
    • “请求数据”指的是请求中提供的数据,即GET和POST数据。我找不到两者的通用名称。无论如何,我不太明白你的选择#2,请举例说明。
    • 那你的问题是什么?如果您想保留“请求数据”,您可以使用Server.Transfer,如果您不想保留它,请使用Response.Redirect。关于选项 #2,您可以在此处找到如何发布 HTTP 请求的更多信息:stackoverflow.com/questions/1885170/…
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-11-16
    • 1970-01-01
    • 2011-06-19
    • 2011-07-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多