【发布时间】:2012-05-18 15:18:29
【问题描述】:
从视图“x”来看,当用户单击“编辑项目”时,呈现“编辑”页面的控制器操作也在检查用户对该页面的权限。
我要做的是检查这些权限,如果用户没有这些权限,我想在那个“X”视图上显示一条错误消息并取消控制器操作。
现在,我的代码如下所示:
[HttpPost]
public virtual ActionResult EditPage(int? itemId)
{
var model = new EditPageModel();
if (itemId.HasValue)
{
var obj = new Item(itemId.Value);
// Check for user's edit permission before we do anything else.
var request = SecurityRequest.Create(obj, Item_Edit);
Request.Execute(() => SecurityManager.ValidatePermissions(request));
if (!request.IsValid(Item_Edit))
{
//skip the rest and return error
Response.StatusCode = (int)HttpStatusCode.Forbidden;
// Need Help Here!!!
}
// Mode code executes
return View(model);
}
【问题讨论】:
-
对于错误信息,不要忘记大而友好的字母:mantia.me/images/dontpanic_large.jpg
-
你能不检查之前的权限而不显示编辑链接吗?如果他们不能编辑,为什么要让他们看到呢?
-
根本不可能不显示编辑链接。在已放置“编辑”按钮的视图中,有一个用户可以/不能编辑的不同项目的列表。在选择每个项目后,我们需要确定他是否可以编辑。理想情况下,我们会基于此禁用/启用“编辑”按钮,但由于这需要回调控制器,我们只是将其保存到用户实际单击“编辑”按钮时。
标签: c# asp.net-mvc asp.net-mvc-3 controller