Данные основаны на роли пользователя - PullRequest
1 голос
/ 15 мая 2011

У меня есть продукт с множеством цен. Я хочу, чтобы на основе группы пользователей отображалась соответствующая цена.

Насколько я создал роли, которые описывают эти группы

  1. Администратор
  2. UserPriceA
  3. UserPriceB
  4. UserPriceC

Я бы хотел как-то получить роль текущего пользователя.

Примерно так:

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

Ответы [ 2 ]

1 голос
/ 15 мая 2011

Вы не можете сделать это так, потому что у пользователя может быть несколько ролей, но вы могли бы

Prices.Where( p=> Membership.GetRoles().Contains(p.PriceType.Name))
набирать текст на этом телефоне, это не весело ... Извините за краткость
1 голос
/ 15 мая 2011

Вы можете написать условное утверждение на основе имени каждой роли. В зависимости от того, является ли пользователь участником роли, выполните другой оператор LINQ.

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