ASP.NET Вход в веб-сервис с использованием имени пользователя и пароля только в первый раз - PullRequest
0 голосов
/ 19 мая 2009

Когда я в первый раз захожу на свой веб-сервис, я хочу использовать FormsAuthentication, например,

myService.ClientCredentials.UserName.UserName = "name";
myService.ClientCredentials.UserName.Password = "password";

но как только пользователь вошел в мое веб-приложение, я не хочу знать о его пароле, поэтому я хотел бы иметь возможность подключиться к веб-сервису как этот пользователь, не зная его пароля. Возможно ли это?

Ответы [ 3 ]

0 голосов
/ 19 мая 2009

Вы должны быть в состоянии сделать это, но есть несколько вопросов для рассмотрения. Аутентификация на основе форм (FBA) обычно использует cookie для отслеживания аутентификации.

  1. Безопасность - настройка веб-приложения и веб-сервис для использования одной и той же базы данных FBA.

  2. Домен - пока веб-сервис находится в том же домене, что и Интернет приложение, веб-сервис может использовать тот же cookie-файл аутентификации. Если у клиента куки отключены, тогда это может не работать.

  3. Срок действия файла cookie - необходимо настроить продолжительность аутентификации для допустимое время (30 минут, 1 час, 1 день или более) в файле web.config. это позволит пользователю получить доступ к веб-сервису в течение надлежащего периода времени после того, как он или она вошел в систему.

0 голосов
/ 20 мая 2009

вы можете включить сеансы в вашем веб-сервисе. Существует простой токен, который вы добавляете в начале объявления сервиса.

<WebMethod(True)> Method Name
0 голосов
/ 19 мая 2009

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

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

Будьте предупреждены, может быть проблема безопасности с сохранением пароля в кэше, так как я считаю, что это будет частью сеанса. Я не знаком с тем, как .net справляется с этим, но вы можете посмотреть на хеширование .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...