【发布时间】:2010-05-21 05:58:13
【问题描述】:
这是我在这里的第一篇文章,所以你好 :) 好的,让我们进入正题...... 我正在用 ASP.NET MVC 框架编写我的第一个应用程序,但在检查权限以使用模型类实例(读取、编辑)时遇到问题。示例代码如下所示:
// Controller action
[CustomAuthorize(Roles="Editor, Admin")]
public ActionResult Stats(int id)
{
User user = userRepository.GetUser(id);
if (user == null || !user.Activated || user.Removed)
return View("NotFound");
else if (!user.IsCurrentSessionUserOwned)
return View("NotAuthorized");
return View(user);
}
到目前为止,授权属性仅保护控制器操作,所以我的问题是:如何使 CustomAuthorize 属性不仅检查用户角色、用户名,还检查操作方法中实例化的资源(上图:用户类,但还有其他 ORM LINQ2SQL 类,如新闻、照片等)所有这些要检查的对象都有其唯一的 ID,因此用户实体有自己的 ID,新闻有他们的 ID,并且 UserID 字段引用到用户表。我应该如何解决这个问题?
【问题讨论】: