2011-05-15 55 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))
打字不好玩......對不起,簡潔