Re[2]: Безопасность вызова методов, на основе ролей из БД
От: RW Украина  
Дата: 02.12.11 10:28
Оценка:
Здравствуйте, HowardLovekraft, Вы писали:

HL>Здравствуйте, RW, Вы писали:


RW>>Приложение должно загрузить и отобразить нужные контролы, дать возможность вызывать методы, в зависимости от того какой пользователь вошел


HL>Результатом авторизации пользователя будет какой-то контекст, в котором будут хранится роли и разрешения текущего пользователя.


HL>Для "отображения нужных контролов" нужно построить модель (представления) на основе контекста, применимую к конкретному представлению — т.е. какой-то класс вида:

HL>
HL>public class OrderEditorSecurityViewModel
HL>{
HL>  property Boolean IsSaveCommandEnabled { /* ... */ }
HL>  property Boolean IsCustomerSelectorEnabled {  /* ... */ }
  
HL>  // ...
HL>}
HL>

HL>и затем связать экземпляр этого класса с нужными свойствами контролов. Конкретные детали реализации будут зависеть от GUI-фреймворка, которым вы воспользуетесь.

HL>С "методами" сложнее.

HL>Если у вас клиент-сервер, то управления доступностью/видимостью контролов будет достаточно — сделали кнопку disabled, и уже ее обработчик не сработает -> "метод" не выполнится.
HL>Если у вас есть app server, то, по-хорошему, нужно обеспечить разграничение доступа на уровне вызова серверных методов, иначе любой клиент, написанный не вами, сможет делать все, что заблагорассудится. Т.е. в базе хранить разрешения на вызов методов, а при обращении к серверу передавать credentials пользователя, получать контекст с разрешениями и принимать решение — можно или нельзя.

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

да, у меня клиент-сервер, но я занимаюсь в данный момент клиентской стороной, но в итоге проверки будут и там, и там. Просто сейчас задача разобраться с клиентом)

а есть ли какой-то подход, для защиты именно методов. что-то подобное вот этому http://msdn.microsoft.com/en-US/library/dswfd229(v=VS.80).aspx
только с такими возможностями, чтобы из самого же приложения потом изменять, назначать разрешения, роли. и Роли, разрешения брать из своей базы.
database view model role-based security
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.