У меня есть UserAccountService с различными методами, некоторые из которых требуют аутентификации пользователя (например, ChangePassword, ChangeUserData), а некоторые - нет (RegisterUser).
Однако, похоже, я не могу заставить его работать, так что только некоторые методы требуют аутентификации.
Методы, требующие аутентификации, отмечены
[PrincipalPermission(SecurityAction.Demand, Authenticated = true)]
В моем app.config указана привязка, которая использует шифрование и запрашивает учетные данные UserName:
<binding name="authenticatedBinding">
<security mode="TransportWithMessageCredential">
<message clientCredentialType="UserName" />
</security>
</binding>
(я использую basicHttpBinding)
У меня также настроен пользовательский поставщик аутентификации:
<serviceCredentials>
<userNameAuthentication userNamePasswordValidationMode="Custom" customUserNamePasswordValidatorType="..." />
</serviceCredentials>
При такой конфигурации я не могу вызывать какие-либо методы службы без проверки подлинности.
Если я опущу конфигурацию безопасности, то я могу вызвать методы, которые не требуют аутентификации, но учетные данные сообщения больше не переносятся.
Как мне настроить свою службу, чтобы она позволяла вызывать все методы и требовала, чтобы имя пользователя и пароль устанавливались только тогда, когда это требуется через PrincipalPermission?
Я использую Silverlight в качестве своего клиента, если это важно ...
Спасибо!