相关疑难解决方法(0)

没有证书和Windows身份验证的WCF消息安全性

我有一个WCF服务和客户端,它将部署到几家公司(数百家).一些公司将在他们的网络中运行该软件,一些公司将通过Internet运行它(办公室的WCF服务器,另一个的WCF客户端).

我们想要加密WCF服务器和客户端之间的通信.我们没有必要使用WCF安全性来验证客户端/订户,因为我们有自己的用户名/密码登录,客户端将使用这些登录服务器来登录服务器.

  • 我们不能依赖Windows身份验证,因为某些用户将通过Internet运行它,并且WCF服务器可能与WCF客户端不在同一个域中.
  • 如果我们使用"真实"证书*,运行该软件的公司必须从CA购买证书并安装它,然后配置我们的软件才能使用它,但这对于大多数人来说太复杂了.
  • 我们可以在安装WCF服务器期间自动创建证书,但之后我们必须自动将其安装到证书存储中,并以某种方式自动授予IIS权限以读取证书.这比我们想要的更复杂.

简而言之,我们想要一个简单的解决方案,其中加密仅基于共享密钥,在我们的例子中是用户登录的用户名/密码.我知道这不会提供最好的加密,但我们愿意交换一些安全性,以使软件更容易部署.

这可能吗?

*使用"真实"证书,我指的是从证书颁发机构购买的证书,而不是我自己创建/自签名的证书.

encryption wcf message certificate

17
推荐指数
2
解决办法
1万
查看次数

使用CustomBinding的WCF服务配置HTTPS

我需要在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.

谢谢

射线

https wcf wcf-binding transport basic-authentication

7
推荐指数
1
解决办法
2万
查看次数