Лучшие практики в пользовательских привилегиях / переменных сеанса в MVC3 - PullRequest
3 голосов
/ 09 сентября 2011

Участники сообщества Hi Stack,

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

Что я обычно делаю в такой ситуации (в PHP) - это создание переменной Session (массива) при входе в систему, которая заполняется идентификаторами отделов, которые пользователь может редактировать.Когда пользователь затем обращается к функции редактирования, раскрывающийся список заполняется только этими конкретными отделами.Я также заполняю несколько других переменных сеанса, которые часто используются, например, имя пользователя и идентификатор текущего периода времени (рабочего квартала).

Является ли этот тип подхода хорошим подходом в MVC3 иликакой-нибудь альтернативный подход лучше?Хотя я полагаю, что собираюсь использовать проверку подлинности с помощью форм и некоторые конкретные роли (сотрудник, администратор и т. Д.), Эти типы ролей слишком широки, чтобы можно было ориентировать доступ по отделам, и я не уверену MVC3 есть метод «из коробки», который лучше, чем я планирую.

Мы ценим ваше руководство!

Ответы [ 2 ]

1 голос
/ 09 сентября 2011

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

0 голосов
/ 09 сентября 2011

Я храню аналогичные данные (UserId, DepartmentId и т. Д.) В сеансе, поскольку они не изменяются для пользователя и представляют собой небольшой объем данных.По моему мнению, состояние сеанса будет хорошим подходом и для вас.

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