【问题标题】:Hide Querystring in MVC action在 MVC 操作中隐藏查询字符串
【发布时间】:2014-01-15 05:46:45
【问题描述】:

我想将查询字符串隐藏到我的控制器的操作中。

在我的应用场景是这样的:

1) 我在新窗口中打开了新操作:

var check="Particular String"
var url = rootUrl("Home/Preview?Docs=" + check);
window.open(url, '_blank');

2) 在控制器方面,我在控制器的操作中使用了一些代码:

 public ActionResult Preview(string Docs)
        {
            TempData["Docs"] = Docs;
            return RedirectToAction("UnInvoicedPreview");
        }

我的查询:: 1) 当打开新窗口时,它会在开头显示查询字符串(直到它不重定向到另一个操作)。

2) 我不想在 URL 中显示 QueryString。

3) 有什么方法可以隐藏查询字符串或者我们可以加密吗?

【问题讨论】:

  • 为什么你想加密或隐藏查询字符串?
  • @Erik Philips 因为它显示了发布到查询字符串中的 ID。由于安全目的,我必须隐藏它。

标签: c# jquery asp.net-mvc asp.net-mvc-routing query-string


【解决方案1】:

不,您根本无法隐藏查询字符串。 取而代之的是很多方法
1.session["key"]
2.viewbag
3.$.post in jquery
4.

[HttpPost]
public ActionResult Preview(string Docs)
{
    TempData["Docs"] = Docs;
     return RedirectToAction("UnInvoicedPreview");
}

【讨论】:

  • 我可以将值赋给 Session 变量,如 @Session["_UninvoicedDocuments"]=check;它不工作并引发异常。
  • @RahulRJ 在获取值时在viewcontroller 中抛出异常
  • 进入视图的 Jquery 我正在使用特定的代码,例如 :: var check="SomeString"; @Session["_UninvoicedDocuments"]=check;
  • @RahulRJ 尝试像这样设置@{Session["_UninvoicedDocuments"] = "check";}
  • @Nilesh 它不起作用。并且“检查”是一个变量,而不是我以串联字符串格式存储机密 ID 的字符串,所以你的答案不起作用
【解决方案2】:

这不是很好的 MVC。 MVC 并不真正使用查询字符串,除非在特殊情况下。

MVC 中的建议 URL 为“/Home/Preview/

话虽如此,如果你想隐藏参数,最好使用jQuery并发布到服务器。

var check="Particular String"
var data = "Docs=" + check;
$.post("/Home/Preview", data);

请注意,如果您查看页面的视图源,您仍然可以看到此值,但至少它不会显示在 Url 中。

【讨论】:

  • 您可能想要删除帖子,因为它对安全性没有帮助。 (每个新 cmets)
【解决方案3】:
  1. 您可以将数据存储在会话变量中或尝试将值存储在 cookie 中。

  2. 最好使用 TempData,它只允许使用一次值(在第一次访问时删除)。但是,这意味着该值将几乎立即使用。

  3. 加密查询字符串。

【讨论】:

    【解决方案4】:

    你可以试试这个:

    HttpServerUtility.UrlTokenEncodeHttpServerUtility.UrlTokenDecode 将字节数组转换为 URL 安全字符串

    【讨论】:

      【解决方案5】:

      在 IFrame 中嵌入您的页面或页面的一部分,这将完全隐藏查询字符串和 URL。

      【讨论】:

      • 您可能需要删除 IFrame,因为它对安全性没有帮助。 (每新 cmets)
      猜你喜欢
      • 1970-01-01
      • 2012-01-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-03-29
      • 2023-03-05
      相关资源
      最近更新 更多