none
WCF安全配置问题,请帮我看下哪里还需要设置,老徐进来看看,我把问题搬这里了 RRS feed

  • 问题

  • 同样的问题,只不过我客户端没有配置证书,帮我看一下,还需要哪里进行设置,WCF安全问题实在是头痛啊。。。。。
    -------------------------------------------------------------
    出错描述:
    无法打开安全通道,因为与远程终结点的安全协商已失败。这可能是由于用于创建通道的 EndpointAddress 中不存在 EndpointIdentity 或错误指定了 EndpointIdentity。请确认由 EndpointAddress 指定或暗示的 EndpointIdentity 正确标识了远程终结点。
    --------------------------------------------------------------
    服务端Web.config配置
    <bindings>
    <wsHttpBinding>
    <binding name="BindingConfigration" maxReceivedMessageSize="2147483647">
    <readerQuotas maxStringContentLength="2147483647"/>
    <security mode="Message">
    <transport clientCredentialType="None"/>
    <message clientCredentialType="None" negotiateServiceCredential="true" establishSecurityContext="true"/>
    </security>
    </binding>
    </wsHttpBinding>
    </bindings>
    -------------------------------------------------------------
    客户端配置(代码配置,WinForm)
    WSHttpBinding tmpBind = new WSHttpBinding();
    tmpBind.Security.Mode = SecurityMode.Message;
    tmpBind.Security.Transport.ClientCredentialType = HttpClientCredentialType.None;
    tmpBind.Security.Message.ClientCredentialType = MessageCredentialType.None;
    tmpBind.Security.Message.NegotiateServiceCredential = true;
    tmpBind.Security.Message.EstablishSecurityContext = true;
    -------------------------------------------------------------
    把WCF发布到远程服务器就不行了。。。。

    本机在HttpClientCredentialType.Windows验证下可以通过
    2009年12月9日 8:50

答案

  • 你试着给客户端显示指定一下服务器证书公钥.

    在配置文件中:

    <client>
          <endpoint 略>
            <identity>
              <certificate encodedValue="服务器证书公钥的BASE64编码值" />
            </identity>
          </endpoint>
    </client>
    • 已建议为答案 Mog Liang 2009年12月16日 9:43
    • 已标记为答案 Mog Liang 2009年12月18日 5:53
    2009年12月10日 1:18

全部回复

  • <message clientCredentialType="None" negotiateServiceCredential="true" establishSecurityContext="true"/>
    设置为false可以吗?
    Frank Xu Lei--谦卑若愚,好学若饥
    专注于.NET平台下分布式应用系统开发和企业应用系统集成
    Focus on Distributed Applications Development and EAI based on .NET
    欢迎访问老徐的中文技术博客:Welcome to My Chinese Technical Blog
    欢迎访问微软WCF中文技术论坛:Welcome to Microsoft Chinese WCF Forum
    欢迎访问微软WCF英文技术论坛:Welcome to Microsoft English WCF Forum
    2009年12月9日 14:58
    版主
  • 你试着给客户端显示指定一下服务器证书公钥.

    在配置文件中:

    <client>
          <endpoint 略>
            <identity>
              <certificate encodedValue="服务器证书公钥的BASE64编码值" />
            </identity>
          </endpoint>
    </client>
    • 已建议为答案 Mog Liang 2009年12月16日 9:43
    • 已标记为答案 Mog Liang 2009年12月18日 5:53
    2009年12月10日 1:18