MVC 3 : AJAX 权限验证
初学MVC3有很多不明白的地方,尤其是数据传递,SESSION控制 等等。
近期用MVC3做了个小项目,其中用到权限验证
问题描述:
有一个 delete 操作,是AJAX请求,权限验证是UrlAuthorizeAttribute 继承自 AuthorizeAttribute ,如验证没有权限则执行如下代码:
filterContext.HttpContext.Response.Redirect("/Error/deny",true);
ajax 的 delete 对应的ACTION 返回 JsonResult
问题出来了,每次执行delete 操作都不跳转至无权访问的提示页,调试跟踪N遍,没有成功。突然灵光一现,
心想:即然 ACTION 返回的是 JsonResult 那没有权限的时候应该返回同样的类型才对,所以无权访问的执行代码改为如下:
filterContext.Result = new JsonResult { Data = new BasicJsonMessage { Message = "您没有权限", Success=false } };
程序运行通过,并通过JS提示 “您没有权限!”
BasicJsonMessage 这是我自定义的类,两个属性 Message 和 Success
到此好像明白了点什么 ,但又抓不着。
你想到什么了吗?