服务参考安全标头

时间:2012-08-28 05:26:43

标签: c# service wcf-client

尝试使用服务引用时出现以下错误:

Urgent: wsdoallreceiver incoming message does not contain required security header

我的配置文件包含以下内容:

<configuration>
    <configSections>
    </configSections>
    <system.serviceModel>
        <bindings>                
            <basicHttpBinding>
                <binding name="ProjectServiceSOAP11Binding" closeTimeout="00:01:00"
                    openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00"
                    allowCookies="false" bypassProxyOnLocal="false" hostNameComparisonMode="StrongWildcard"
                    maxBufferSize="65536" maxBufferPoolSize="524288" maxReceivedMessageSize="65536"
                    messageEncoding="Text" textEncoding="utf-8" transferMode="Buffered"
                    useDefaultWebProxy="true">
                    <readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384"
                        maxBytesPerRead="4096" maxNameTableCharCount="16384" />
                    <security mode="None">
                        <transport clientCredentialType="None" proxyCredentialType="None"
                            realm="" />
                        <message clientCredentialType="UserName" algorithmSuite="Default" />
                    </security>
                </binding>
            </basicHttpBinding>
            <customBinding>
                <binding name="ProjectServiceSOAP12Binding">
                    <textMessageEncoding maxReadPoolSize="64" maxWritePoolSize="16"
                        messageVersion="Soap12" writeEncoding="utf-8">
                        <readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384"
                            maxBytesPerRead="4096" maxNameTableCharCount="16384" />
                    </textMessageEncoding>
                    <httpTransport manualAddressing="false" maxBufferPoolSize="524288"
                        maxReceivedMessageSize="65536" allowCookies="false" authenticationScheme="Anonymous"
                        bypassProxyOnLocal="false" decompressionEnabled="true" hostNameComparisonMode="StrongWildcard"
                        keepAliveEnabled="true" maxBufferSize="65536" proxyAuthenticationScheme="Anonymous"
                        realm="" transferMode="Buffered" unsafeConnectionNtlmAuthentication="false"
                        useDefaultWebProxy="true" />
                </binding>
            </customBinding>
        </bindings>
        <client>
            <endpoint address="(address here)"
                binding="basicHttpBinding" bindingConfiguration="ProjectServiceSOAP11Binding"
                contract="ProjectService.ProjectServicePortType" name="ProjectServiceSOAP11port_http" />
            <endpoint address="(address here)"
                binding="customBinding" bindingConfiguration="ProjectServiceSOAP12Binding"
                contract="ProjectService.ProjectServicePortType" name="ProjectServiceSOAP12port_http" />
        </client>
    </system.serviceModel>
</configuration

我正在尝试进行身份验证:

    ProjectServicePortTypeClient myProjectClient = new ProjectServicePortTypeClient("ProjectServiceSOAP11Binding");
    myProjectClient.ClientCredentials.SupportInteractive = true;
    myProjectClient.ClientCredentials.UserName.UserName = myLogInEmail;
    myProjectClient.ClientCredentials.UserName.Password = myPassword;

我正在犯一个明显的错误吗?

1 个答案:

答案 0 :(得分:0)

经过数小时的额外研究后,我确定我可能需要这样做: http://msdn.microsoft.com/en-us/library/ms731075.aspx