2014-01-29 275 views
3

我想隐藏其中显示了我的网址查询字符串,如图片::隐藏查询字符串URL进入

enter image description here

我打开它变成新窗口为::

1图所示)jQuery代码到Oepn新窗口:

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

而且 2)控制器(服务器端)代码:

public class TestViewModel 
    { 
     public string Docs { get; set; } 
     public long DocIDs { get; set; } 
     public long TestIDs { get; set; } 
    } 
    public ActionResult Test(TestViewModel Test) 
    { 
     return View(); 
    } 

但是在这种情况下,文档ID显示在查询字符串中。 我只想隐藏Querystring以获得更高的安全性。 我该怎么做?

+0

请点击此链接:http://stackoverflow.com/questions/3951768/window-open-and-pass-parameters-by-post-method –

+0

你在问错误的问题。无论是否有人可以看到文档ID,都不应该影响您的Web应用程序的安全性。如果你依靠隐藏一个变量来保护你的应用程序,你做错了。有关更多信息,请参阅http://stackoverflow.com/a/245586/130387 – Tommy

+0

@BappiDatta但是,如上所示,我发布的URL列表中的文档可能更多。那么在那种情况下我需要隐藏这些ID。 – Rahul

回答

0
  1. 您可以存储在会话变量数据或尝试 cookies中存储的值。

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

  3. 加密查询字符串。

1

您可以改为发布帖子。如果你希望它是加密的,你应该把它通过HTTPS

0

如果您不希望显示的参数,然后不给他们将它们存储在隐藏字段在您的主页,然后在打开的窗口( TEST)使用window.opener.document.getElementById('ID_OF_THE_HIDDEN_ELEMENT_IN_THE_PARENT_PAGE')通过JavaScript获取值。

看看this example我写了另一个答案。