【问题标题】:How to hide URL in Browser asp.net如何在浏览器 asp.net 中隐藏 URL
【发布时间】:2012-06-16 10:11:09
【问题描述】:

我知道这是 Stack 上的重复问题。但在我的情况下,我使用的 URL 正在传递查询字符串详细信息。

http://servername:82/root/ReportViewer.aspx?Id=/test/base/eg1 &Name=ReportDeatilName & User=783534

如何隐藏整个查询字符串?

【问题讨论】:

  • 您可以使用 URL 重写...例如查找 http://servername:82/root/ReportViewer.aspx?Id=/test/base/eg1 &Name=ReportDeatilName & User=783534 和重定向/发送到 http://servername:82/root/ReportViewer.aspx?Id=/test/base/eg1
  • 杜安这个 URL 是从 asp.net 中 MenuItem 的 NavigateUrl 生成的,在这种情况下它也可以工作
  • 我认为这真的没关系,如果你想“隐藏它”通过http post方法发送它(即使你想要“获取”它是“反对”REST的东西)来自服务器的东西,而不是修改 de 资源...)使用 js 隐藏表单
  • @PratikGupta 没关系,它仍然可以工作。
  • Here's 一个简单的教程。

标签: c# asp.net url url-rewriting


【解决方案1】:

如果可以,您可以使用 POST 生成调用,而不是使用 GET 进行调用。
所以你的 url 看起来会更干净(例如:servername:82/root/ReportViewer.aspx),因为所有信息都在 <form> 中发送。

【讨论】:

  • 我自己没有使用任何 GET 或 POST,而是在 Asp.net 页面中使用 MenuItems 的 NavigateURL
  • @PratikGupta - 所有超链接都是/发出 GET 请求,无论它们是否有查询字符串/变量都是无关紧要的(在 GET 的上下文中),默认情况下(除非您明确更改请求的类型,超链接将是 GET)。这个问题似乎是重复的,因为它可能没有提供关于 why 的解释。 Indio 的回答(使用POST)非常好。 server.transfer 和 URL 重写也是如此。所有这些都可以在您的情况下使用。
【解决方案2】:

您可以在后面的代码中使用Server.Transfer

这看起来您是从同一页面响应的。类似于Response.Redirect,但只是改变了Web服务器上的“焦点”并传输请求。

Server.Transfer("http://servername:82/root/ReportViewer.aspx?Id=/test/base/eg1 &Name=ReportDeatilName&User=783534");

【讨论】:

  • 阿卜杜勒我不能使用这种方法,因为你可以我的响应它是从 NavigateUrl 字段生成的
【解决方案3】:

在您的代码中使用Server.Transfer

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-09-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-16
    • 1970-01-01
    相关资源
    最近更新 更多