我有一个WCF服务和客户端,它将部署到几家公司(数百家).一些公司将在他们的网络中运行该软件,一些公司将通过Internet运行它(办公室的WCF服务器,另一个的WCF客户端).
我们想要加密WCF服务器和客户端之间的通信.我们没有必要使用WCF安全性来验证客户端/订户,因为我们有自己的用户名/密码登录,客户端将使用这些登录服务器来登录服务器.
简而言之,我们想要一个简单的解决方案,其中加密仅基于共享密钥,在我们的例子中是用户登录的用户名/密码.我知道这不会提供最好的加密,但我们愿意交换一些安全性,以使软件更容易部署.
这可能吗?
*使用"真实"证书,我指的是从证书颁发机构购买的证书,而不是我自己创建/自签名的证书.
我需要在WCF服务上进行自定义绑定,以允许我将原始内容传递给WCFRest服务.效果很好,但我不能让它接受传输级别的安全性.我想在其他地方使用https和basicauthentication.端点看起来像这样:
<endpoint address="" behaviorConfiguration="web" contract="SmsService.ISmsReceive" binding="customBinding" bindingConfiguration="RawReceiveCapable"></endpoint>
Run Code Online (Sandbox Code Playgroud)
customBinding看起来像这样:
<customBinding>
<binding name="RawReceiveCapable">
<security mode="Transport">
<transport clientCredentialType="Basic"/>
</security>
<webMessageEncoding webContentTypeMapperType="SmsService.RawContentTypeMapper, SmsService, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
<httpTransport manualAddressing="true" maxReceivedMessageSize="524288000" transferMode="Streamed" />
</binding>
</customBinding>
Run Code Online (Sandbox Code Playgroud)
但是系统抱怨安全节点中不允许使用mode属性.没有安全节点,一切都很好,但它不是https.
谢谢
射线