Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/76.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery ASP.NET页面方法-如何在页面方法中获取url参数值?_Jquery - Fatal编程技术网

Jquery ASP.NET页面方法-如何在页面方法中获取url参数值?

Jquery ASP.NET页面方法-如何在页面方法中获取url参数值?,jquery,Jquery,可能重复: 我有一个日历网页。当用户打开事件时,它会使用url打开页面,如下所示: 然后,我使用jQuery调用page方法来显示一些额外的数据。我通过$.ajax函数发送的数据参数还包括eventID,以显示正确事件的数据。 若用户手动地(比如说通过firebug控制台)使用伪造的eventID执行对page方法的jQuery调用,那个么他将得到错误的数据。 我想防止,。。。在某种程度上,不使用jQuery数据参数发送eventid,而是以某种方式在服务器端代码隐藏上获取eventid。 问

可能重复:

我有一个日历网页。当用户打开事件时,它会使用url打开页面,如下所示: 然后,我使用jQuery调用page方法来显示一些额外的数据。我通过$.ajax函数发送的数据参数还包括eventID,以显示正确事件的数据。 若用户手动地(比如说通过firebug控制台)使用伪造的eventID执行对page方法的jQuery调用,那个么他将得到错误的数据。 我想防止,。。。在某种程度上,不使用jQuery数据参数发送eventid,而是以某种方式在服务器端代码隐藏上获取eventid。 问题是,我不能使用会话,因为用户可以打开多个事件,每个事件都有自己的eventID,我也不能使用cookie,因为它们也可能被黑客攻击。 所以我试图在page方法中直接获得正确的eventid,使用

HttpContext.Current.Request.QueryString
但是没有运气。 在页面上,我使用以下内容获取eventid:

EventID = Page.Request.QueryString("eventid")
但是我找不到一种方法将这个eventid值放入我的page方法中

所以,我想知道如何从页面加载中定义的url或公共变量中获取页面方法参数值

谢谢

编辑: 目前我正在使用POST发送以下参数:

var myEventId = $("#hiddenField").val();

$.ajax({
url: "Event.aspx/getEventData",
type: "POST",
data: "{'eventid':myEventId}"
...
});

但我希望避免将eventid参数与POST一起发送,以防止黑客攻击。

这里的根本问题似乎自相矛盾

你是说你需要从用户那里获取eventId,但实际上你并不想从用户那里获取任何东西,因为他们可能会攻击/更改它

底线是你不应该相信用户的任何输入,句号。如果用户可以读取事件foo,但不能读取事件栏,那么您需要在服务器端进行验证

你们真的不能阻止他们向你们发送酒吧,但你们可以在他们发送酒吧后拒绝他们查看酒吧

至于您的代码有什么问题,数据参数需要是JSON本身,而不是JSON字符串删除您的引号:

$.ajax({
url: "Event.aspx/getEventData",
type: "POST",
data: { eventid : myEventId}
...
});

使用POST而不是GET怎么样?在这种情况下,您可以在页面上有一个隐藏字段,该字段可以发布到服务器以调用您的方法……这个问题可能会帮助您:仅供参考,恶意用户的POST请求并不比GET请求更安全,反之亦然。