2013-05-28 5 views
0

У меня есть раздел в моей заявке о том, что люди, работающие неполный рабочий день, не могут пользоваться, но могут наниматься на полный рабочий день. У нас гораздо больше штатных сотрудников, чем на неполный рабочий день; поэтому я решил, что будет легче создать роль, в которой перечислены частичные таймеры, и исключить их из этого контроллера вместо того, чтобы получать полный список полных таймеров и поддерживать этот список. Я не нашел ничего, что действительно соответствовало бы тому, что я ищу. Большинство решений, похоже, расширяют функциональность Authorize, но я не могу найти то, что близко к тому, что я ищу.Как исключить роль доступа к контроллеру?

Можете ли вы указать мне правильное направление?

Например:

[Authorize(Roles!="PartTimers")] 
public class MyController : Controller { } 
+0

Это должно быть '[Авторизовать (Роли =" FullTimers ")]', все остальное идет против зерна fx здесь. Что произойдет, когда будет определена новая группа пользователей (гостей)? –

+0

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

+0

В противном случае я просто защищусь от неясности. Я удалю параметры меню, и они не найдут страницы. –

ответ

2

Это должно быть [Authorize(Roles="FullTimers")], все остальное идет вразрез предоставленной рамка здесь.

Что произойдет, когда будет определена новая группа пользователей (гостей)? Гораздо безопаснее явно предоставить им доступ, а затем сканировать все приложение для действий, требующих отказа.

Основание WebForms действительно обеспечивает функцию <deny roles ="..." />, но в основном используется с roles="*" и users="?", и это не относится к применимому здесь.

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

Усилия по «ведению списка» не пропорциональны количеству членов. В любом случае вам понадобится флажок или что-то еще.

Смежные вопросы