Пользовательская «Базовая» аутентификация для моих служб WCF. ОТДЫХ и РИА. Возможный? - PullRequest
0 голосов
/ 18 августа 2011

Моя серверная часть содержит службы WCF4 REST, и я собираюсь добавить службы RIA для моего будущего приложения SL4.В настоящее время я делаю обычную аутентификацию следующим образом:

var auth = HttpContext.Current.Request.Headers.GetValues("Authorization");

И так далее. Вы поняли ... Я вызываю это при каждом запросе.Если заголовок отсутствует или я не могу подтвердить UN / пароль - я делаю это:

outgoingResponse.Headers.Add("WWW-Authenticate: Basic realm=\"Secure Area\"");

Это до сих пор меня достало, но я реорганизую свою серверную часть.Внедрение IoC для связанных сервисов.Созданы пользовательские ServiceHost, ServiceHostFactory, InstanceProvider и все хорошо.

Теперь мне нужно понять, как правильно обрабатывать аутентификацию и авторизацию с помощью WCF, чтобы мне не приходилось вручную проверять заголовки.У меня есть свой пользовательский MembershipProvider, поэтому должен быть какой-то метод, который обрабатывает UN / PW.

Есть какие-нибудь указатели?Я посмотрел на http://www.codeproject.com/KB/WCF/BasicAuthWCFRest.aspx, но он использует RequestInterceptor и не доступен в WCF4.Я нашел ServiceAuthenticationManager и ServiceAuthorizationManager, но нет примеров того, как их кодировать и связывать.

Кто-нибудь может подсказать, куда мне идти?

Ответы [ 2 ]

0 голосов
/ 18 августа 2011

Попробуйте использовать этот пользовательский модуль HTTP .Он добавит новый режим аутентификации в IIS и позволит вам использовать проверку пользовательских учетных данных.

0 голосов
/ 18 августа 2011

У меня были все типы проблем, использующих встроенные аннотации для WCF в недавнем проекте SOAP / C #. Я знаю, что это не лучшее решение, но для своих целей я включил базовую аутентификацию в IIS7 для своего приложения, отключил анонимную аутентификацию и создал пользователей Active Directory для внешних клиентов, которые будут вызывать конечные точки веб-службы. Затем я изменил разрешения приложения в IIS7 (оно использует разрешения файловой системы), чтобы разрешить группу, содержащую этих пользователей.

Это перемещает аутентификацию за пределы вашего приложения, что может не соответствовать вашим требованиям, но позволяет легко добавлять пользователей через консоль IIS7 и средства развертывания, которые могут копировать эти разрешения. Преимущество заключается в том, что вам не нужно повторно развертывать приложение для изменения разрешений. Недостатком является то, что вы не можете выполнять детальный контроль разрешений для каждой функции.

...