Так что я использую службу 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, похоже, не заботился о том, что его там не было). Я вытащил большую часть сообщения из средства просмотра трассировки. Итак, кто-нибудь знает, что это может быть?