Итак, я работаю над настройкой службы WCF, размещенной в iis7. Услуга является услугой ОТДЫХА.
До сих пор наши требования к аутентификации заключались в том, что только доменные учетные записи собирались подключиться к сервису. Мы используем базовую аутентификацию и используем олицетворение для вызовов через наш бизнес-уровень в нашу БД.
Это все работает хорошо.
Теперь нам нужно разрешить не доменным учетным записям использовать наш сервис. Из-за чего-то с IIS я реализовал это (http://custombasicauth.codeplex.com/) и пользовательский поставщик членства, который будет (в зависимости от переданного имени пользователя) либо пытаться выполнить аутентификацию в Active Directory, либо в отношении поставщика членства asp.net. Эта часть работает правильно.
Теперь у меня проблема в том, что олицетворение не работает (что понятно). Теперь я заблудился, и мне нужна помощь с направлением или устранением всего тумана. Что я хочу сделать (и я не знаю, возможно ли это) это:
ЕСЛИ пользователь является пользователем домена, ТОЛЬКО имитировать свою учетную запись.
ЕСЛИ НЕ пользователь домена, ТОГДА выдавать себя за «общую учетную запись пользователя домена».
В качестве бонуса я бы хотел, чтобы это произошло «за сценой», чтобы каждый наш метод не нуждался в специальной логике для этого.
Я прочитал кучу материала о личностях, провайдерах политик, ролевых провайдерах ... и теперь я полностью сбит с толку.
У кого-нибудь есть понимание этого?