2009-06-29 2 views
2

Я хочу загрузить файл на веб-сайт с помощью приложения для рабочего стола, а затем отправить пользователя на сайт. Веб-сайт имеет веб-службу, но требует аутентификации, как и веб-сайт. Есть ли способ сделать это без принуждения пользователя к аутентификации дважды (один раз в настольном приложении и один раз в веб-браузере)? К сожалению, вы не можете предварительно заполнять ввод файла типа по соображениям безопасности, что имеет смысл, так как пользователь не захочет загружать произвольные файлы со своего компьютера. Но если у них есть настольное приложение, есть ли способ обойти это? Или, может быть, сначала войдите в веб-приложение, а затем cookie проверки подлинности может быть повторно использован? Любые другие идеи?Интеграция аутентификации между веб-приложением и настольным приложением

Спасибо, Бен

+0

Не использует ли webservice какой-либо метод входа? – James

ответ

3

Я использовал бы приложение dekstop как клиент для приложения веб-сайта через api.

Итак, войдите в систему через настольное приложение. Api возвращает токен аутентификации (как предположил Карлос), который может быть хешем md5, хранящимся в вашей базе данных в течение определенного периода времени, возможно, сопоставимым с IP-адресом клиента.

Приложение для настольных компьютеров может выполнять вызовы на api (например, загрузку файла) в качестве аутентифицированного пользователя (с использованием токена аутентификации).

При загрузке веб-сайта возможно URL-адрес http://website/login/ {auth_token}, где к URL-адресу добавлен токен авторизации. Api может проверить, действительно ли его действительный токен аутентификации и считать пользователя вошедшим в систему.

1

Вы можете сгенерировать маркер аутентификации, который впоследствии может быть использован на веб-сайте.

0

Все зависит от типа аутентификации службы и сайта. Является ли он интегрированным Kerberos, WS-Auth, является ли он базовым/дайджестом HTTP, это формы/cookie?

0

Этот ответ скорее всего не будет работать в самом общем сценарии пользователей по всему миру, но в интрасети контексты, используя проверку подлинности Windows (в решении ASP .Net), предоставили бы это.