我遇到了一篇msdn文章https://msdn.microsoft.com/en-us/library/ms972410.aspx?f=255&MSPPError=-2147217396
,它引导了如何设计一个以加密形式发送响应的Web服务,而不使用HTTPS& SSL。我们只需要以加密形式为返回响应添加一个属性。示例代码如下
public class CreditCardService {
[WebMethod]
[EncryptionExtension(Encrypt=EncryptMode.Response)]
public string GetCreditCardNumber() {
return "MC: 4111-1111-1111-1111";
}
}
1)我想知道我需要包含什么dll因此我可以使用此属性 [EncryptionExtension(Encrypt = EncryptMode.Response)] 进行网络方法?
2)我可以使用此属性 EncryptionExtension 加密请求和响应吗?我不是在开发环境之前所以无法测试它。所以请一些人分享知识。
3)我主要担心的是加密我的网络服务请求和响应,而不使用SSL& HTTPS,我也不喜欢编写任何加密请求和响应xml的Web服务的例程。我想要一些自动加密我的Web服务请求和响应的方法。引导我。感谢
答案 0 :(得分:1)
如果你阅读整篇文章,你会发现你需要实现自己的SOAP扩展,它将提供必要的加密。 SOAP扩展应如下所示:
public class EncryptionExtension : SoapExtension {
public override void ProcessMessage(SoapMessage message) {
switch (message.Stage) {
case SoapMessageStage.BeforeSerialize:
break;
case SoapMessageStage.AfterSerialize:
Encrypt();
break;
case SoapMessageStage.BeforeDeserialize:
Decrypt();
break;
case SoapMessageStage.AfterDeserialize:
break;
default:
throw new Exception("invalid stage");
}
}
...
}
本文的其余部分介绍了如何实现加密算法等。
应该相当容易