mvc3和entity - 依赖于角色的基本查询

时间:2011-09-16 17:00:32

标签: asp.net asp.net-mvc-3 entity-framework-4

我是.net和mvc3的新手。

在我的应用中,我有两个不同的角色,管理员和基本用户。管理员可以查看所有内容,但用户只能看到与其关联的项目。

我在我的控制器中这样做:

private MembershipExtContext db = new MembershipExtContext();
[Authorize]
public ViewResult Index()
    {
        var thing1s = db.Thing1.Include(i => i.Thing2);
        return View(thing1s.ToList());
    }

我希望它能使基本查询(db.Thing1.Include(i => i.Thing2);)仅返回当前用户可以看到的项目。否则,我需要为每个角色单独进行查询。

这可能吗?如果是这样,怎么样?

如果需要,我首先使用mvc3和entity4代码。

1 个答案:

答案 0 :(得分:0)

这样做的一种方法是

if(Roles.IsUserInRole(User.Identity.Name, "Admin")
{
   do stuff
   return View();
}
else
{
   //do non admin stuff
   return View();
}

这假设您的管理员用户在您的角色中被称为“管理员”,并且您只有两种角色类型。