2010-07-08 2 views
3

Подробная информация о моей службы:Какой режим аутентификации basichhtpbinding можно использовать для защиты службы WCF с помощью потоковой передачи?

сервис загрузки
  1. Файл
  2. Transfermode установлен в поток
  3. служба размещена в IIS 7.

необходимо предоставить secuirty моей службы. Я пробовал с ntlm и windows secuirty.I получал следующую ошибку, когда я пытаюсь защитить свою службу.

«Потоковая передача HTTP-запросов не может использоваться в сочетании с HTTP-аутентификацией. Либо отключите потоковое использование запроса, либо укажите анонимную HTTP-аутентификацию. "

я нашел описание о том, что: Описание:

Вы не можете сделать транспортную авторизацию. с потоковой передачей. Если вам нужно использовать потоки HTTP-запросов, вам придется работать без безопасности.

Так что я хочу знать, как я могу защитить свое обслуживание? Какой режим secuirty можно использовать с basichttpbinding? Может ли кто-нибудь помочь мне в этом?

ответ

5

Вы можете попробовать использовать TransportWithMessageCredential:

<bindings> 
    <basicHttpBinding> 
    <binding name="securedStream" transferMode="streamed"> 
     <security mode="TransportWithMessageCredential"> 
     <message clientCredentialType="UserName" /> 
     </security> 
    </binding> 
    </basicHttpBinding> 
</bindings> 

Это передавать учетные данные в заголовке SOAP. Теперь вы должны либо передать имя пользователя, и пароль - проверка по умолчанию относится к учетным записям Windows, но вы также можете использовать членский провайдер или собственный валидатор паролей.

Если вы действительно хотите NTLM или Windows, значит, вы используете как клиент, так и сервер в той же сети/домене. В этом случае вместо этого используйте Net.tcp.

Смежные вопросы