我对使用哪种方法有点困惑:
1-使用Jquery调用实现订单的HttpHandler页面。
2-使用 ICALLBACKEventHandler -阅读更多 http://www.ajaxmatters.com/2006/05/using-icallbackeventhandler-in-asp-net/ .
您能给我一些关于哪一种使用效率更高的建议吗?
Thanks
基础阅读
我建议您使用此链接来帮助您更好地了解选项并选择您想要的:
为什么 ASP.NET Ajax UpdatePanel 是
危险的? http://encosia.com/2007/07/11/why-aspnet-ajax-updatepanels-are-dangerous/
使用jQuery直接调用Ajax
页
方法 http://encosia.com/2008/05/29/using-jquery-to-directly-call-aspnet-ajax-page-methods/.
简化调用 ASP.NET Ajax
服务来自
jQuery http://encosia.com/2009/07/21/simplify-calling-asp-net-ajax-services-from-jquery/.
我的选择
我更喜欢使用jQuery.ajax()
并且jQuery 模板插件 http://api.jquery.com/category/plugins/templates/需要时(从 AJAX 调用加载表格数据)。一种轻量级的方法,对开发人员有更多的控制权。我不喜欢微软在我们使用他们的处理程序时生成愚蠢的代码.
安全漏洞
但没关系,正如您在评论中指出的那样,您可能会遇到一些安全问题。
您关于轻松操纵的注释Referer
很有趣,但这个漏洞并不是 jQuery 独有的。问题是AJAX本身已经承载了这个概念,这是多年来讨论的已知问题。
重要的是要观察到使用ICallbackEventHandler
不是解决方案,因为它只是生成 AJAX 请求而无需键入的另一种方法。但是如果异步请求存在,它总是可以通过某种方式被拦截,比如$.ajax()
可能。
最后,你已经给出了“几乎”的答案:最好将安全令牌作为参数传递。如果您与MasterPage
,令牌生成HiddenField
将被抽象为单个代码。您可以使用 JavaScript 函数进行封装,该函数负责使用此令牌作为参数进行 AJAX 调用。一切都只是软件架构的问题。
我称其为“几乎”答案,因为没有什么是完全安全的安全令牌也可能被黑客攻击 http://www.whirlycott.com/phil/2005/04/15/security-in-an-ajax-world/。是的,这更加困难和罕见,但 99% 永远不是 100%。
Resuming
你的第二个选择是ICallbackEventHandler
可能存在许多安全问题以及您的第一选择$.ajax()
,因为处理程序将生成一些与您要键入的任何代码类似的代码。最后,您的选择必须取决于品味。但请记住阅读并采取有关这两种情况的安全性所需的方法。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)