2011-05-15 66 views
1

我有一个包含价格数组的产品。我想根据用户组显示相应的价格。基于用户角色的数据

据我创建了一个被描述这些群体

  1. 联系
  2. UserPriceA
  3. UserPriceB
  4. UserPriceC

我想以某种方式获取当前用户角色的作用。

事情是这样的:

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

回答

1

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

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

你不能这样做完全是这样,因为用户可以拥有多个角色,但你可以做到这一点的手机上

Prices.Where(p=> Membership.GetRoles().Contains(p.PriceType.Name))
打字不好玩......对不起,简洁