Здравствуйте, 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
только с такими возможностями, чтобы из самого же приложения потом изменять, назначать разрешения, роли. и Роли, разрешения брать из своей базы.