Модераторы: Partizan, gambit

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Использование службы аутентификации, в клиентском приложении 
V
    Опции темы
ДобренькийПапаша
Дата 14.6.2009, 17:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1278
Регистрация: 14.1.2006
Где: г.Москва

Репутация: нет
Всего: 7



Имеется клиентское приложение. Должна быть процедура аутентификации. 
Я узнал, что можно в настройках проекта указать использование служб, в частности Forms Authentication.
Здесь же нужно указать место размещения этой службы и службы ролей... Что за размещение здесь нужно указывать, на что это повлияет? Можно ли в качестве поставщика членства и ролей использовать SQL Server?
И где про это можно почитать поконкретней? (определённые здесь классы, свойства, интерфейсы, методы...)


--------------------
Меня зовут Себастьян Парейра, торговец чёрным деревом.
PM MAIL   Вверх
jonie
Дата 15.6.2009, 07:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 5613
Регистрация: 21.8.2005
Где: Владимир

Репутация: 22
Всего: 118



Цитата
Я узнал, что можно в настройках проекта указать использование служб, в частности Forms Authentication

а это не про asp.net разве?

Цитата
Можно ли в качестве поставщика членства и ролей использовать SQL Server?

ну тебе никто не мешает попробывать подключиться под логином\паролем через SQLServer аутентификацию к mssql.

Цитата

И где про это можно почитать поконкретней? (определённые здесь классы, свойства, интерфейсы, методы...)

MSDN?


--------------------
Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет...
PM MAIL Jabber   Вверх
ДобренькийПапаша
Дата 15.6.2009, 07:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1278
Регистрация: 14.1.2006
Где: г.Москва

Репутация: нет
Всего: 7



Да там в основном про asp. Но можно и в клиентском приложении Windows Forms....
Нашёл кое-что на эту тему в одной книге...
Тут сначала пишется сама служба приложения (вручную... на C#.NET), а потом она вызывается из клиентского приложения (тут пример web-приложения, а потом пример клиента с формой для аутентификации откуда не возьмись форма берётся...). Ну скажем всё это работает...
Только смысл то я тогда не понимаю во всех этих настройках в Visual Studio... всё равно всё вручную делается, включая саму службу! Что за бред?
Вобщем что-то непонятно. Если никто не имел с этим дела...жаль.

Это сообщение отредактировал(а) ДобренькийПапаша - 15.6.2009, 07:59


--------------------
Меня зовут Себастьян Парейра, торговец чёрным деревом.
PM MAIL   Вверх
Idsa
Дата 15.6.2009, 08:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник
Сообщений: 2086
Регистрация: 5.12.2006
Где: Томск

Репутация: 14
Всего: 62



ДобренькийПапаша, Forms Authentication разрабатывался для использования под ASP.NET. И надстройки вроде Membership API - тоже.
Впринципе никто не запрещает использовать эти фишки вне ASP.NET - но получится не так "вкусно": например, модуль аутентификации, который считывает Cookies, дешифрует и залогинивает пользователя здесь, я так понимаю, уже не прикрутишь (но можно все это сделать вручную).

Цитата(ДобренькийПапаша @  14.6.2009,  21:56 Найти цитируемый пост)
Можно ли в качестве поставщика членства и ролей использовать SQL Server?

В этом и заключается стандартный подход.


--------------------
Мой блог: alexidsa.blogspot.com
PM MAIL ICQ   Вверх
PashaPash
Дата 15.6.2009, 09:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1233
Регистрация: 3.1.2008

Репутация: 13
Всего: 49



ДобренькийПапаша, Membership под WinForms вообще не имеет особого смысла - у тебя всегда известен конкретный пользователь, под которым запущено приложение. И роль его тоже известна.


--------------------
PM MAIL WWW   Вверх
Conkistador
Дата 15.6.2009, 15:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 26
Регистрация: 3.6.2009

Репутация: 2
Всего: 2



PashaPash, ну это если использовать аутентификацию Windows, иногда проще написать упрощенную собственную аутентификацию
PM MAIL WWW   Вверх
PashaPash
Дата 15.6.2009, 16:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1233
Регистрация: 3.1.2008

Репутация: 13
Всего: 49



Conkistador, что значит "если использовать"? пользователь, запустивший приложение, уже залогинен в системе задолго до запуска. У него или есть права доступа к каким-то ресурсам, или нет. 
Какой смысл спрашивать у локального администратора имя и пароль к winforms приложению, если он в системе может сделать все что угодно? В том числе и поменять эти "упрощенный" пароль напрямую в данных приложения.


--------------------
PM MAIL WWW   Вверх
ДобренькийПапаша
Дата 15.6.2009, 19:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1278
Регистрация: 14.1.2006
Где: г.Москва

Репутация: нет
Всего: 7



ПашаПаш, то есть Вы имеете ввиду что надо проводить аутентификацию Windows, а программную свою по базе вообще можно и не использовать? Или просто настоятельно советуете использовать Windows аутентификацию дополнительно?


--------------------
Меня зовут Себастьян Парейра, торговец чёрным деревом.
PM MAIL   Вверх
PashaPash
Дата 15.6.2009, 23:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1233
Регистрация: 3.1.2008

Репутация: 13
Всего: 49



Цитата(ДобренькийПапаша @  15.6.2009,  19:55 Найти цитируемый пост)
ПашаПаш, то есть Вы имеете ввиду что надо проводить аутентификацию Windows, а программную свою по базе вообще можно и не использовать? Или просто настоятельно советуете использовать Windows аутентификацию дополнительно? 

Я имею в виду что аутентификация Windows уже произведена - пользователь ввел свои имя и пароль при входе в систему. А для проведения "програмной по базе" у приложения, т.е. у пользователя, зашедшего в систему и запустившего приложение, должны быть права на просмотр имен и паролей всех пользователей в этой базе. А раз есть права - ничто не может помешать ему "программно залогиниться" вообще как кто угодно.

На пальцах: любой продвинутый пользователь не будет тупо созерцать AuthenticationForm, а просто возьмет и сделает Select password From usrpwd. И легкий налет безопасности исчезнет.


--------------------
PM MAIL WWW   Вверх
mihryak
Дата 16.6.2009, 00:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 731
Регистрация: 28.4.2007
Где: С-Пб

Репутация: 19
Всего: 36



Цитата(PashaPash @  15.6.2009,  10:55 Найти цитируемый пост)
ДобренькийПапаша, Membership под WinForms вообще не имеет особого смысла - у тебя всегда известен конкретный пользователь, под которым запущено приложение. И роль его тоже известна. 

аутентификация действительно проведена уже, но вот роль-то откуда известна? её надо высчитать из WindowsIdentity, чтобы дать в результате пользователю доступные ему права (авторизация)

Цитата(PashaPash @  16.6.2009,  00:01 Найти цитируемый пост)
А для проведения "програмной по базе" у приложения, т.е. у пользователя, зашедшего в систему и запустившего приложение, должны быть права на просмотр имен и паролей всех пользователей в этой базе. А раз есть права - ничто не может помешать ему "программно залогиниться" вообще как кто угодно.

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

в общем, быть авторизации в интранете
PM MAIL ICQ   Вверх
mihryak
Дата 16.6.2009, 00:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 731
Регистрация: 28.4.2007
Где: С-Пб

Репутация: 19
Всего: 36



кстати, и аутентификация формами тут тоже вполне может быть применима - быть может, некой системе абсолютно нет дела, под какой учёткой сидит пользователь, у неё свои юзеры, у винды - свои (какая-нибудь, например, программка для инет-кафе)
задачей всё определяется, конечно, но MS недвусмысленно намекает, что главный инструмент аутентификации/авторизации - соответствующие службы
PM MAIL ICQ   Вверх
ДобренькийПапаша
Дата 16.6.2009, 05:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1278
Регистрация: 14.1.2006
Где: г.Москва

Репутация: нет
Всего: 7



Цитата(PashaPash @ 15.6.2009,  23:01)
На пальцах: любой продвинутый пользователь не будет тупо созерцать AuthenticationForm, а просто возьмет и сделает Select password From usrpwd. И легкий налет безопасности исчезнет.

А шифрование паролей?


--------------------
Меня зовут Себастьян Парейра, торговец чёрным деревом.
PM MAIL   Вверх
mihryak
Дата 16.6.2009, 09:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 731
Регистрация: 28.4.2007
Где: С-Пб

Репутация: 19
Всего: 36



Цитата(ДобренькийПапаша @  16.6.2009,  06:29 Найти цитируемый пост)

А шифрование паролей? 

а чем это поможет, если есть доступ к базе?
мониторишь запросы, видишь, что из введённых кредов ZloyAdmin/123 до базы доходят ZloyAdmin/@$Dj*vt
ну и пишешь update usrpwd set password = '@$Dj*vt' where user ='ZloyAdmin'
PM MAIL ICQ   Вверх
ДобренькийПапаша
Дата 16.6.2009, 10:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1278
Регистрация: 14.1.2006
Где: г.Москва

Репутация: нет
Всего: 7



Ну и как тогда лучшим образом (для безопасности приложения) проводить аутентификацию в Windows приложении?

Сначала Windows Indentity а потом аутентификация реализованная своим приложением? 

Ну шифрование реализовывать надо в любом случае! [Или я не прав???smile]



--------------------
Меня зовут Себастьян Парейра, торговец чёрным деревом.
PM MAIL   Вверх
PashaPash
Дата 16.6.2009, 10:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1233
Регистрация: 3.1.2008

Репутация: 13
Всего: 49



Цитата(mihryak @  16.6.2009,  00:20 Найти цитируемый пост)
вот для этого и нужна (веб)служба авторизации - некий веб-сервис, который запущен где-либо со всеми требуемыми правами, отвечает приложению, а, стало быть, и запустившему его аутентифицированному пользователю, что он может делать
и запускай её хоть под локальным админом машины, если веб-сервис запущен, например, под доменными администраторами, в которые локальный админ не добавлен, то ничего он не сможет сделать из того, что ему не разрешат

в общем, быть авторизации в интранете 


Цитата(mihryak @  16.6.2009,  00:52 Найти цитируемый пост)
кстати, и аутентификация формами тут тоже вполне может быть применима - быть может, некой системе абсолютно нет дела, под какой учёткой сидит пользователь, у неё свои юзеры, у винды - свои (какая-нибудь, например, программка для инет-кафе)
задачей всё определяется, конечно, но MS недвусмысленно намекает, что главный инструмент аутентификации/авторизации - соответствующие службы 


Топик как-бы об авторизации в полностью локальном приложении и ограничении доступа к локальным ресурсам. Т.е. есть база с доступом все пользователям, и программа которая при поптыке запуска спрашивает пароль, проверяя его в этой же базе.
Сервисы из примера выше выдают токены к другим удаленным ресурсам, которые этим сервисами доверяют - не наш случай. Интернет-кафешка - тоже доступа к удаленным ресурсам, ну или очень серьезная замена shell и вообще большей части винды - вряд ли ее можно рассматривать как обычное winforms приложение.
Цитата(ДобренькийПапаша @  16.6.2009,  05:29 Найти цитируемый пост)
А шифрование паролей? 

А отладчик, которым пользователь просто "переступит" на твой Application.Run? smile

Добавлено через 3 минуты и 52 секунды
Цитата(ДобренькийПапаша @  16.6.2009,  10:19 Найти цитируемый пост)
Ну и как тогда лучшим образом (для безопасности приложения) проводить аутентификацию в Windows приложении?

Сначала Windows Indentity а потом аутентификация реализованная своим приложением? 

Ну шифрование реализовывать надо в любом случае! [Или я не прав???smile]

Нет, просто ограничить доступ к базе (и доступ к конкретным данным в базе) определенным пользователям, и использовать windows auth для соединения с sql server. Если слишком сложно - перейти на 2-tier приложение, с сервером между клиентом и базой. 


--------------------
PM MAIL WWW   Вверх
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема »


 




[ Время генерации скрипта: 0.0711 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.