【发布时间】:2013-02-21 19:49:54
【问题描述】:
是否可以将我的操作方法的控制器操作访问权限限制为仅限 AJAX 请求?
我的意思是一个非 Ajax 操作请求将被重定向到 404 或抛出错误。如果 JS 在我自己的页面上发出请求,操作只会返回正确的结果。
我尝试谷歌搜索,但没有找到答案。我了解到我可以为此目的实现自定义过滤器,但也许它已经存在于 MVC 中?
谢谢。
【问题讨论】:
-
我对你的意图有点迷茫。您想阻止来自未经身份验证或错误角色用户的未经授权的请求吗?
-
我只想阻止直接请求操作(当有人在浏览器 URL 栏中键入“www.mysite.com/controller/action”时)。
-
HttpPostAttribute 足以阻止浏览器栏;)
-
@Olexander,OP 可以接受非 Ajax 帖子吗?
-
@DaveA,是的,他们会的,而且您的回答绝对正确,而且,您的解决方案不会导致可能重写现有的 jquery
$.get()和$.getJSON()请求。但考虑到上面的评论(关于浏览器 URL 栏),POST 请求是 @AlexDn 试图达到的(看起来像:)。这就是为什么我只留下评论而不是帖子;)
标签: javascript jquery asp.net ajax asp.net-mvc