数据基于用户角色

时间:2011-05-15 06:03:04

标签: asp.net-mvc-3 roles user-roles

我有一系列价格的产品。我希望根据用户组显示相应的价格。

到目前为止,我创建了描述这些组的角色

  1. 管理
  2. UserPriceA
  3. UserPriceB
  4. UserPriceC
  5. 我想以某种方式获得当前用户的角色。

    这样的事情:

    public decimal Price {
        get
        {
            var price = Prices.First(p => p.PriceType.Name == Something.CurentUser.Role);
            return price; 
        }
    }
    

2 个答案:

答案 0 :(得分:1)

您可以根据每个角色的名称编写条件语句。根据用户是否是角色的成员,执行不同的LINQ语句。

if (User.IsInRole("Admin")) {
    // ...
}
else if (User.IsInRole("UserPriceA")) {
   // ...
}
else if (User.IsInRole("UserPriceB")) {
   // ...
}
else if (User.IsInRole("UserPriceC")) {
   // ...
}

答案 1 :(得分:1)

你不能这样做,因为用户可以拥有多个角色但你可以做到

Prices.Where( p=> Membership.GetRoles().Contains(p.PriceType.Name))
在这款手机上打字并不好玩......很抱歉,简洁