0
如何驗證我的WCF消息是否已簽名?我的安裝程序運行正常,但需要能夠檢查服務器端的簽名。這是如何完成的?我正在使用MsmqIntegrationBinding,並使用X509Certificate2對其進行簽名。如何驗證我的WCF消息是經過簽名和加密的?
var binding = new MsmqIntegrationBinding(MsmqIntegrationSecurityMode.Transport)
{
SerializationFormat = MsmqMessageSerializationFormat.Binary,
Security = new MsmqIntegrationSecurity()
{
Mode = MsmqIntegrationSecurityMode.Transport,
Transport = new MsmqTransportSecurity()
{
MsmqAuthenticationMode = MsmqAuthenticationMode.Certificate,
MsmqProtectionLevel = System.Net.Security.ProtectionLevel.Sign
}
}
};
EndpointAddress address = new EndpointAddress("myaddress");
ChannelFactory<IMyMessage> channelFactory = new ChannelFactory<IMyMessage>(binding, address);
channelFactory.Credentials.ClientCertificate.Certificate = my_x509certificate2;
IMyMessage channel = channelFactory.CreateChannel();
//create message and send using the channel
嗯,可能是簽字不工作。我現在收到一個錯誤:「請求消息必須被保護,這是合約操作所要求的...保護必須由綁定提供('MsmqIntegrationBinding','http://tempuri.org/')。 「 – Random 2013-03-22 20:01:16
這就是這個註釋的作用,它需要在調用操作之前在服務器端進行簽名和加密。 – 2013-03-22 20:34:49
因此,現在我必須確定爲什麼它沒有按照我設置的方式發生。 – Random 2013-03-25 15:45:40