2012-05-04 2 views
1

У меня есть клиент веб-службы, настроенный с безопасностью транспорта и Basic clientCredentialType. Служба использует конечную точку HTTPS, и мне сложно диагностировать ошибку. Я пытался добавить журнал в приложение, которое хранит сообщения запроса и ответа, а также переданные учетные данные (по крайней мере, имя пользователя).
Для сообщений я добавил пользовательское поведение с MessageInspector.
Как я могу зарегистрировать учетные данные? Есть ли какая-либо точка расширения WCF для этого? Любое другое предложение?
БлагодаряРегистрация учетных данных, переданных веб-службе WCF

Edit: Ошибка я получаю это:

[NotSupportedException: This method is not supported by this class.] 
System.Net.BasicClient.Lookup(HttpWebRequest httpWebRequest, ICredentials credentials) +2544984 
System.Net.AuthenticationManager.Authenticate(String challenge, WebRequest request, ICredentials credentials) +304 
System.Net.AuthenticationState.AttemptAuthenticate(HttpWebRequest httpWebRequest, ICredentials authInfo) +7949046 
System.Net.HttpWebRequest.CheckResubmitForAuth() +269 
System.Net.HttpWebRequest.CheckResubmit(Exception& e) +126 
System.Net.HttpWebRequest.DoSubmitRequestProcessing(Exception& exception) +185 
System.Net.HttpWebRequest.ProcessResponse() +75 
System.Net.HttpWebRequest.SetResponse(CoreResponseData coreResponseData) +562 

[WebException: The request was aborted: The request was canceled.] 
System.Net.HttpWebRequest.GetResponse() +7865220 
System.ServiceModel.Channels.HttpChannelRequest.WaitForReply(TimeSpan timeout) +99 

[CommunicationException: An error (The request was aborted: The request was canceled.) occurred while transmitting data over the HTTP channel.] 
System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg) +4729827 
System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type) +1725 
...Application code from here on... 

Это веб-приложение, которое работает правильно в DEV, но выдает эту ошибку в QA. Код тот же, и пользователь действителен в обеих средах.

Связывание конфигурации:

<binding name="CommonBinding" maxReceivedMessageSize="10000000" useDefaultWebProxy="true" openTimeout="00:10:00" sendTimeout="00:10:00"> 
     <security mode="Transport"> 
     <transport clientCredentialType="Basic" proxyCredentialType="Basic" 
      realm="" /> 
     <message clientCredentialType="UserName" algorithmSuite="Default" /> 
     </security> 
</binding> 
+0

Какую ошибку вы получаете? И какой метод аутентификации пользователя/пароля вы используете? –

ответ

0

проверить это:

http://msdn.microsoft.com/en-us/magazine/cc948343.aspx

Я считаю, что вы могли бы сделать это в IAuthorizationPolicy

+0

Как я понимаю, это на стороне сервера. Я хочу сделать это на стороне клиента, поскольку веб-службы не являются WCF, и у меня нет большого контроля над ними. –

+0

, чтобы вы могли регистрировать идентификацию пользователя на стороне клиента? это x.509 или пользовательский пропуск? вы можете получить его из поведения clientCredentials. –

+0

Это пользователь/пропуск. У вас есть пример того, как я могу использовать для этого поведение clientCredentials? Я хочу захватить эффективного пользователя и передать отправленные, а не настроенные (в любом случае, они установлены в коде) –

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

  • Нет связанных вопросов^_^