mvc3 и entity - базовый запрос, зависящий от роли - PullRequest
0 голосов
/ 16 сентября 2011

Я очень новичок в .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 голосов
/ 16 сентября 2011

Один из способов сделать это будет

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

Предполагается, что ваш пользователь-администратор называется «Администратором» в ваших ролях и у вас есть только два типа ролей.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...