所以我使用带有TransportWithMessageCredential的basicHttpBinding来使用WCF服务。我可以通过.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似乎并不关心它不存在)。我从跟踪查看器中删除了大部分消息。那么有没有人知道这可能是什么?