Ref*_*eft 1 asp.net-mvc access-modifiers
我想保护我的公共方法不被用户调用.
因为我从ajax脚本调用动作,所以我不能使用任何访问修饰符(私有,受保护等).
此外,[HttpPost]不会阻止用户执行虚假请求.
有人有解决方案吗?
谢谢
小智 6
创建一个动作过滤器,允许仅通过AJAX调用操作方法
namespace MyFilters
{
[AttributeUsage(AttributeTargets.Method)]
public class AjaxOnlyAttribute : ActionFilterAttribute
{
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
if (!filterContext.HttpContext.Request.IsAjaxRequest())
{
filterContext.HttpContext.Response.StatusCode = 404;
filterContext.Result = new HttpNotFoundResult();
}
else
{
base.OnActionExecuting(filterContext);
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
然后将其应用于action方法
[AjaxOnly]
public JsonResult DoSomething()
{
....
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
550 次 |
| 最近记录: |