Пример WCF с TransportWithMessageCredential без прокси-класса - PullRequest
1 голос
/ 16 июля 2010

Так что я использую службу WCF, использующую basicHttpBinding с TransportWithMessageCredential.Я могу просто аутентифицироваться с .net в .net.Проблема в том, что я хочу предоставить некоторые образцы этой третьей стороне, но все в зашифрованном виде.Так что я не могу просто перевести это на проволоку и продолжить свой день.

var request = (System.Net.HttpWebRequest) System.Net.WebRequest.Create ("https://localhost/service.svc"); string strNewValue;

  request.Headers.Add("SOAPAction","\"http://tempuri.org/Service/GetOrderDetails\"");
  request.ContentType = "text/xml; charset=\"utf-8\"";
  request.Accept = "text/xml";
  request.Method = "POST";

  strNewValue = [really long soap envelope]

  ASCIIEncoding encoding = new ASCIIEncoding();

  byte[] bytesToWrite = encoding.GetBytes(strNewValue);
  //request.ContentLength = bytesToWrite.Length;

  Stream newStream = request.GetRequestStream();
  newStream.Write(bytesToWrite, 0, bytesToWrite.Length);
  newStream.Close();

  HttpWebResponse response = (HttpWebResponse)request.GetResponse();

Но я получаю «Протокол безопасности не может проверить входящее сообщение.» От средства просмотра журнала трассировки службы WCF. Сообщение 500 отправляется обратно клиенту. У меня там есть мой заголовок безопасности,У меня есть отметка времени создания и я удалил срок действия (другой сайт сказал, что WCF, похоже, не заботился о том, что его там не было). Я вытащил большую часть сообщения из средства просмотра трассировки. Итак, кто-нибудь знает, что это может быть?

...