powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Impersonate()
15 сообщений из 15, страница 1 из 1
Impersonate()
    #38987217
Фотография Ex_Soft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Думал, что это отсюда , но, как оказалось , все гораздо гораздее... ЭстЪ идеи?
_________________
"Helo, word!" - 17 errors 56 warnings
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Impersonate()
    #38987232
netivan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ты что сделать-то хочешь?
...
Рейтинг: 0 / 0
Impersonate()
    #38987449
Фотография Ex_Soft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> ты что сделать-то хочешь?
прокинуть пользователя, залогинившегося посредством Forms Authentication, на SQL сервант с
Код: c#
1.
connectionString="...Integrated Security=SSPI;Persist Security Info=False..."


_________________
"Helo, word!" - 17 errors 56 warnings
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Impersonate()
    #38987462
zz118
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ходить в базу от имени текущего доменного пользователя - дурной тон. Проблем с этим масса (сложная систама управления правами, не очеидный аудит, прямой доступ в БД мимо вашего ПО и т.д.). Best practice: иметь выделнного доменного пользователя или использовать SQL Server Authorization (по прямому логину/паролю). Если есть необходимость в БД передавать текущего пользователя приложения, лучше делать это явно параметром запроса
...
Рейтинг: 0 / 0
Impersonate()
    #38987488
Фотография Ex_Soft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> Ходить в базу от имени текущего доменного пользователя - дурной тон.
Во-первых: не текущего доменного пользователя, а "пользователя, залогинившегося посредством Forms Authentication". Т.е. он может зайти на машу под одной учеткой, а на сайте ралогиниться - под другой.
Во-вторых: это не в моей власти. Как говорится "...маємо те, що маємо..." На SQL серванте, как раз, доступ и раздаёцо союзно с пользователем, который при'connect'ился к нему.

> Best practice: иметь выделнного доменного пользователя
не получается - см.выше

> или использовать SQL Server Authorization (по прямому логину/паролю).
Да - но тогда нужно знать и хранить где-то пороль (причем в открытом виде), дабы подсунуть его со всеми вытекающими...

> Если есть необходимость в БД передавать текущего пользователя приложения, лучше делать это явно параметром запроса
гм... и как сие можно забалабенить при подключении к OLAP'у?

_________________
"Helo, word!" - 17 errors 56 warnings
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Impersonate()
    #38987506
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Impersonate()
    #38988701
MrVoid
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
zz118Ходить в базу от имени текущего доменного пользователя - дурной тон.
Пруф?
...
Рейтинг: 0 / 0
Impersonate()
    #38988834
zz118
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MrVoid,

User-level authorization affects the overall scalability of the application because it defeats connection pooling. You should not take this route unless strictly necessary. In general, a "trusted model" based on roles and using a fixed number of user-independent accounts alleviates this issue while maintaining a certain association between users and functions.
боянъ, но написано подробно
...
Рейтинг: 0 / 0
Impersonate()
    #38988843
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
zz118,

авторaffects the overall scalability
и причём здесь дурной тон?
...
Рейтинг: 0 / 0
Impersonate()
    #38988849
MrVoid
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
@zz118
Представми, что в конторе 5000 пользователей. 4900 пользователей можно разбить по группам (100 групп по 49 человек). У остальных 100 - уникальные права. Как вы будете управлять пользователями через SQL Login? Напишите сценарий. :)
...
Рейтинг: 0 / 0
Impersonate()
    #38988987
zz118
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MrVoid@zz118
Представми, что в конторе 5000 пользователей. 4900 пользователей можно разбить по группам (100 групп по 49 человек). У остальных 100 - уникальные права. Как вы будете управлять пользователями через SQL Login? Напишите сценарий. :)

Очевидно, альтернативой считается "выплевывать" SQL exception в пользователся? толково=) Я уже молчу про O/R map cache, который живет "мимо" секьюрити модели приложения. На мой взгляд, сценарий простой: управление пользователями - дело сервера приложений, но никак на базы данных. Вот пусть сервак занимается сессиями, авторизацией, эффективными пермиссиями и т.д.
...
Рейтинг: 0 / 0
Impersonate()
    #38988993
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
zz118,

серебрянной пули - не существует
...
Рейтинг: 0 / 0
Impersonate()
    #38989077
zz118
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Изопропил,

Кто же спорит, просто, по моему опыту, попытки задешево сделать модель первмиссий на стороне SQL сервера ни разу не приводили к успеху. Вариантов то масса:
сервер приложений
federated security
выделенный сервер
использование AD (кстати, в этом случае все получается достаточно изящно, можно глянуть реализацию у Atlassian)
...
Рейтинг: 0 / 0
Impersonate()
    #38989083
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
zz118попытки задешево сделать модель первмиссий на стороне SQL сервера ни разу не приводили к успеху.
как я понял, топикстартеру оно уже досталось в готовом виде
...
Рейтинг: 0 / 0
Impersonate()
    #38989836
Winnipuh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
zz118Ходить в базу от имени текущего доменного пользователя - дурной тон. Проблем с этим масса (сложная систама управления правами, не очеидный аудит, прямой доступ в БД мимо вашего ПО и т.д.). Best practice: иметь выделнного доменного пользователя или использовать SQL Server Authorization (по прямому логину/паролю). Если есть необходимость в БД передавать текущего пользователя приложения, лучше делать это явно параметром запроса

Всё это правильно.
Но, представим себе такое:

В базе по датабазе ролям назначены некие права, обычно это может идти еще от систем клиент-сервер, к которым прикручен средний слой, в виде веб-сервиса.
И оба варианта c-s c-ws-s должны работать.
Вот тут я возникает задача как у ТС. Я сам такой.
Для планируемых с 0 систем можно дизайнировать, а в таких случаях - имеем то, что имеем. И только реальный юзер домена знает свои права в базе. Следовательно - он должен быть залогинен на SQL Server.
...
Рейтинг: 0 / 0
15 сообщений из 15, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Impersonate()
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]