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