Хочу сделать систему, основанную на web сервисах. Но что-то не соображу как лучше в web-методах определять того, кто его вызывает.
Список пользователей хранится в БД. Вызов web-метода будет либо c ASP.NET страницы (того же приложения, в котором находится сервис), либо из приложения Windows. В первом случае я могу вытащить пользователя из сессии. А как поступать во втором случае? передавать логин с паролем в запросе к сервису (в параметраах или в SOAP header`е)? Но в этом случае мне придется при каждом вызове метода залезать в БД. Или запихнуть аутентифицированных пользвателей в Application и передавать некий свой ID "сессии" (в тех же параметрах или SOAP header`е)? Или я вообще чего-то не понимаю/не знаю? Хочется сделать так, чтобы работало быстро и при этом минимизировать работу руками.
С уважением,
Дмитрий Петраков.
Аутентификация в web сервисах. Посоветуйте.
От:
Аноним
Дата:
20.09.05 08:31
Оценка:
Самый простой доставать из сессии. Сперва вызови функцию Login(login, password). кинь в сессию login. а потом просто проверяй его наличие
Приветствую.
IAT>Самый простой доставать из сессии. Сперва вызови функцию Login(login, password). кинь в сессию login. а потом просто проверяй его наличие
А если я вызываю сервис из Windows приложения? У меня получается что каждый вызов порождает новую сессию и вытащить что-либо у меня не получается А если я вызываю этот же сервис из ASP.NET страницы — тогда все ok.
Здравствуйте, PuzzleMan, Вы писали:
PM>Приветствую.
PM>Хочу сделать систему, основанную на web сервисах. Но что-то не соображу как лучше в web-методах определять того, кто его вызывает. PM>Список пользователей хранится в БД. Вызов web-метода будет либо c ASP.NET страницы (того же приложения, в котором находится сервис), либо из приложения Windows. В первом случае я могу вытащить пользователя из сессии. А как поступать во втором случае? передавать логин с паролем в запросе к сервису (в параметраах или в SOAP header`е)? Но в этом случае мне придется при каждом вызове метода залезать в БД. Или запихнуть аутентифицированных пользвателей в Application и передавать некий свой ID "сессии" (в тех же параметрах или SOAP header`е)? Или я вообще чего-то не понимаю/не знаю? Хочется сделать так, чтобы работало быстро и при этом минимизировать работу руками.
Самый лучший способ это использование мандатов( tickets ) — зашифрованыые данные( логин, пароль и т.п. ). Хранить их в кукисах или где-то еще. Плюс integrated windows authentification
Re: Аутентификация в web сервисах. Посоветуйте.
От:
Аноним
Дата:
20.09.05 10:01
Оценка:
если ты при вызове из Windows приложения будешь использовать один и тотже объект (прокси класса), то и Session будет работать. Можно и tickets.
Веб сервисы умеют работать с куками (передавать/получать). Соотв без проблем делаешь веб метод для аутентификации пользователя и потом перебрасываешь туда/сюда куки — будет работать Forms Authentication.
Многие вещи нам непонятны не оттого, что наши понятия слабы, а оттого, что данные вещи не входят в круг наших понятий.
Приветствую.
DAM>Веб сервисы умеют работать с куками (передавать/получать). Соотв без проблем делаешь веб метод для аутентификации пользователя и потом перебрасываешь туда/сюда куки — будет работать Forms Authentication. DAM>Многие вещи нам непонятны не оттого, что наши понятия слабы, а оттого, что данные вещи не входят в круг наших понятий.
Спасибо! Именно то что нужно! Так и сделал.
С уважением,
Дмитрий Петраков.
Re[2]: Аутентификация в web сервисах. Посоветуйте.
Здравствуйте, PuzzleMan, Вы писали:
PM>Приветствую.
IAT>>Самый простой доставать из сессии. Сперва вызови функцию Login(login, password). кинь в сессию login. а потом просто проверяй его наличие
PM>А если я вызываю сервис из Windows приложения? У меня получается что каждый вызов порождает новую сессию и вытащить что-либо у меня не получается А если я вызываю этот же сервис из ASP.NET страницы — тогда все ok.