Как аутентифицировать пользователя веб-службы ASP.NET, которая является частью веб-приложения ASP.NET? - PullRequest
3 голосов
/ 21 января 2010

У меня есть веб-приложение на C # ASP.NET 3.5, которое использует аутентификацию форм. Пользователи входят в систему со своим именем пользователя и паролем на login.aspx, проходят аутентификацию с использованием пользовательской логики аутентификации и затем направляются в input.aspx, где они вводят некоторые параметры и получают ответ на output.aspx. Если они пытаются получить доступ к input.aspx без аутентификации, они перенаправляются на login.aspx.

Те же пользователи хотят иметь возможность использовать функциональные возможности этого веб-приложения без использования пользовательского интерфейса из среды Unix. Поэтому я добавил файл веб-службы (.asmx) в это веб-приложение. Я не создал отдельный проект для этого веб-сервиса, потому что веб-сервис использует файлы кода, код в global.asax существующего веб-приложения, и я не должен дублировать этот код для веб-сервиса.

Функциональность веб-службы теперь работает нормально, хотя я не знаю, как аутентифицировать пользователей. Клиент веб-службы отправит имя пользователя и пароль один раз (возможно, используя веб-метод входа в систему, который я могу написать, чтобы подтвердить их подлинность), а затем сможет отправлять несколько запросов (возможно, до тех пор, пока они не вызовут веб-метод выхода из системы или до своей сессии). / cookie истекает).

Чтобы веб-запросы не перенаправлялись на страницу login.aspx, я исключил файл .asmx из проверки подлинности с помощью форм с помощью тега location в web.config. (Я не знаю, так ли это.) Но тогда я думаю, что пользователь не проходит аутентификацию в веб-приложении, и поэтому код веб-приложения, используемый службой, не будет доступен, верно?

1 Ответ

2 голосов
/ 21 января 2010

Я бы порекомендовал вам быстро прочитать эту ссылку (http://msdn.microsoft.com/en-us/library/ms977327.aspx), а затем дополнить ее этой (http://msdn.microsoft.com/en-us/library/9z52by6a(VS.80).aspx).). Вероятно, для защиты вашего веб-сервиса нужен специальный заголовок безопасности. вне проверки подлинности форм. Это означает, что для каждого вызова метода должен быть предоставлен заголовок.

...