#wcf #wif
#wcf #wif
Вопрос:
После тщательного поиска ответа на SO, на этот раз я должен задать свой первый вопрос навсегда!
Далее:
у меня есть приложение Windows Forms, которое использует дюжину служб WCF для обработки всей бизнес-логики. WIF реализован в каждой отдельной службе WCF, и аутентификация пользователей осуществляется с помощью базовой аутентификации по имени пользователя.
Все работает хорошо, за исключением метода Ping (), который у нас есть.
До внедрения WIF мы вызывали каждую службу WCF с помощью фиктивного метода Ping() во время заставки, чтобы убедиться, что служба запущена, но теперь пользователь не может получить доступ к этому методу, поскольку он еще не вошел в систему.
Есть ли способ различать аутентифицированные и анонимные методы в службе, в которой реализован WIF? Я полагаю, что нет, поэтому я хотел бы знать, может ли STS выдать анонимный токен?
У меня сейчас совсем нет идей, поэтому я был бы очень признателен за любую помощь или просто несколько советов 🙂
Ответ №1:
В зависимости от вашей конфигурации, вы могли бы создать набор служб в определенной папке на вашем сайте, а затем добавить пользовательскую конфигурацию в это расположение, которое не включало бы модули аутентификации и сеанса.
В качестве примера:
<location path="AnonymousServices">
<system.webServer>
<modules>
<remove name="WSFederationAuthenticationModule" />
<remove name="SessionAuthenticationModule" />
</modules>
</system.webServer>
</location>
Я не пробовал это на практике, но это должно сработать.
Комментарии:
1. или просто добавьте раздел авторизации, позволяющий анонимным пользователям (в теге location)