![]() |
|
Модераторы: Partizan, gambit |
![]()
|
|
| Ronin08 |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 218 Регистрация: 16.2.2008 Где: г.Москва Репутация: 1 Всего: 1 |
Доброго времени суток!
Перед запуском Win приложения пользователь должен пройти аутентификацию. В зависимости от того в какой ROLES в базе данных (MSSQL Server) находится это USER отображать те или иные конторы или нет! Куда копать? --------------------
Зачем вставать рано или поздно? Надо вставать вовремя |
|||
|
||||
| Heinzz |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 381 Регистрация: 12.12.2008 Где: .net Репутация: 5 Всего: 9 |
System.Security.Principal
сне кажется можно использовать и GenericPrincipal |
|||
|
||||
| Ronin08 |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 218 Регистрация: 16.2.2008 Где: г.Москва Репутация: 1 Всего: 1 |
как я понял классы из пространства имен
обеспечивают безопасность на уровне учетной записи Windows, а я говорю о идентификации на уровне Пользователей которые зарегистрированы в БД, а точнее о группе пользователей (ролях). Это сообщение отредактировал(а) Ronin08 - 4.2.2010, 14:22 --------------------
Зачем вставать рано или поздно? Надо вставать вовремя |
|||
|
||||
| Heinzz |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 381 Регистрация: 12.12.2008 Где: .net Репутация: 5 Всего: 9 |
это WindowsIdentity и WindowsPrincipal на уровне учетных записей Windows, а ведь есть
GenericPrincipal, GenericIdentiy, да и вообще IPrincipal и IIdentity - как раз для организации собственной аутентификации. |
|||
|
||||
| ДобренькийПапаша |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1278 Регистрация: 14.1.2006 Где: г.Москва Репутация: нет Всего: 7 |
Можете проверку роли перенести на сервер а не на клиент. Из клиента вызовите хранимую процедуру нужную, передав логин, который ввёл пользователь, и по нему в хранимой процедуре проверьте какой роли он принадлежит.
Это сообщение отредактировал(а) ДобренькийПапаша - 4.2.2010, 22:32 -------------------- Меня зовут Себастьян Парейра, торговец чёрным деревом. |
|||
|
||||
| Ronin08 |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 218 Регистрация: 16.2.2008 Где: г.Москва Репутация: 1 Всего: 1 |
С этим проблем нет! Аутентификацию я сделал. Проблема в том как с каждой ролью из БД сопоставить отображение контролов!!! Напомню тему: Отображать или нет конторол, в зависимости от того в какой ROLES USER --------------------
Зачем вставать рано или поздно? Надо вставать вовремя |
|||
|
||||
| ДобренькийПапаша |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1278 Регистрация: 14.1.2006 Где: г.Москва Репутация: нет Всего: 7 |
Я не знаю кошерно это или нет, но ты можешь вернуть в клиент из хранимки значение соответствующее роли (0-manager, 1-director, 2-president, 3-alien, 4-guest). И создать соответствующее перечисление в клиенте.
-------------------- Меня зовут Себастьян Парейра, торговец чёрным деревом. |
|||
|
||||
| Ceiceron |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 66 Регистрация: 2.8.2007 Где: Дубна Репутация: нет Всего: нет |
Я делал подобное для веб-приложения. У меня существовал XML-конфиг, где для каждой роли описывалось, какой контрол виден и не виден. При загрузке, аутентификации пользователя, система смотрела в конфиг и по полученной роли выбирала ту часть, настроек, которая требовалась, после чего существовала всего лишь одна функция, где настройки применялись к контролам. Т.е. в коде программы не было ни каких перечислений, что давало возможность динамически создавать и регулировать роли.
В оконном приложении можно сделать также, единственное конечно придется подумать как спрятать конфиг, хотя сирриализовывать его можно бинарно, т.е. фактически можно в простом случае сделать класс, который бы возвращал набор настроек, но лучше файл, более гибко будет. Смотрите в сторону конфигурации приложения. |
|||
|
||||
| Ronin08 |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 218 Регистрация: 16.2.2008 Где: г.Москва Репутация: 1 Всего: 1 |
ДобренькийПапаша, было бы логично, но не хотелось бы лезть в код после добавления новой роли!
Я еще видел вариант когда в БД записываются имена контролов которые должны скрываться для конкретного пользователя запрос проверки типа такого:
и в зависимости 0 или 1, отображать или нет! --------------------
Зачем вставать рано или поздно? Надо вставать вовремя |
|||
|
||||
| Heinzz |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 381 Регистрация: 12.12.2008 Где: .net Репутация: 5 Всего: 9 |
имя пусть вводит пользователь, а Вы по введенному имени запрашивайте из БД набор его ролей и создавайте объект GenericPrincipal. +всегда можно легко изменить набор ролей для каждого пользователя или удалить/добавить нового пользователя не внося изменения в код. Никаких cfg-шек за собой программа не тянет, а вмести с ними и проблем уязвимости безопасности. Раз уж Вам надо обращаться к БД, то и списки пользователей/ролей в ней и храните. ps данный способ рекомендован MS так что не стоит изобретать велосипед, это надежно |
|||
|
||||
![]()
|
| Прежде чем создать тему, посмотрите сюда: | |
|
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :) Так же не забывайте отмечать свой вопрос решенным, если он таковым является :) Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |