Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/267.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# HTTP请求未经客户端身份验证方案';匿名';。从服务器接收的身份验证标头为';基本领域’;_C#_Wcf_Authentication - Fatal编程技术网

C# HTTP请求未经客户端身份验证方案';匿名';。从服务器接收的身份验证标头为';基本领域’;

C# HTTP请求未经客户端身份验证方案';匿名';。从服务器接收的身份验证标头为';基本领域’;,c#,wcf,authentication,C#,Wcf,Authentication,我正在尝试使用SAP WCF webservice 我有以下代码: var remoteAddress = new System.ServiceModel.EndpointAddress("https://appweb.xx.com/sap/bc/srt/wsdl/bndg_E5BBCE4ACBB46CF1A88900155D0A8410/wsdl11/allinone/ws_policy/document?sap-client=300"); using (va

我正在尝试使用SAP WCF webservice

我有以下代码:

var remoteAddress = new System.ServiceModel.EndpointAddress("https://appweb.xx.com/sap/bc/srt/wsdl/bndg_E5BBCE4ACBB46CF1A88900155D0A8410/wsdl11/allinone/ws_policy/document?sap-client=300");

                using (var cliente = new ServiceReference1.ZHRWS_GET_CERTIFICADOClient(new System.ServiceModel.BasicHttpsBinding(), remoteAddress))
                {
                     //set timeout
                    cliente.Endpoint.Binding.SendTimeout = new TimeSpan(0, 0, 0, 6000);
                    cliente.ClientCredentials.Windows.AllowedImpersonationLevel = System.Security.Principal.TokenImpersonationLevel.Impersonation;
                    cliente.ClientCredentials.Windows.ClientCredential.UserName = "xx";
                    cliente.ClientCredentials.Windows.ClientCredential.Password = "xx";
                    ServiceReference1.ZhrGetCertificado cert = new ServiceReference1.ZhrGetCertificado();
                    cert.ICtflab = "1";
                    cert.IIcnum = "8026347";
                    //call web service method
                    var  response = cliente.ZhrGetCertificado(cert);
                }
在我的app.config中,我有:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
    <startup> 
        <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5.2" />
    </startup>
    <system.serviceModel>
        <bindings>
             <basicHttpBinding>
                <security mode="TransportCredentialOnly">
                      <transport clientCredentialType="Basic" proxyCredentialType="None" realm="" />
                      <message clientCredentialType="UserName" algorithmSuite="Default" />
                </security>     
           </basicHttpBinding>
            <customBinding>
                <binding name="ZWSLINK">
                    <!--    WsdlImporter encountered unrecognized policy assertions in ServiceDescription 'urn:sap-com:document:sap:soap:functions:mc-style':    -->
                    <!--    <wsdl:binding name='ZWSLINK'>    -->
                    <!--        <wsaw:UsingAddressing xmlns:wsaw="http://schemas.xmlsoap.org/ws/2004/08/addressing">..</wsaw:UsingAddressing>    -->
                    <!--        <saptrnbnd:OptimizedXMLTransfer xmlns:saptrnbnd="http://www.sap.com/webas/710/soap/features/transportbinding/">..</saptrnbnd:OptimizedXMLTransfer>    -->
                    <!--        <sapattahnd:Enabled xmlns:sapattahnd="http://www.sap.com/710/features/attachment/">..</sapattahnd:Enabled>    -->
                    <textMessageEncoding messageVersion="Soap11" />
                    <httpsTransport authenticationScheme="Basic" />
                </binding>
            </customBinding>
        </bindings>
        <client>
            <endpoint address="https://appweb.xx.com/sap/bc/srt/wsdl/bndg_E5BBCE4ACBB46CF1A88900155D0A8410/wsdl11/allinone/ws_policy/document?sap-client=300"
                binding="customBinding" 
                bindingConfiguration="ZWSLINK" 
                contract="ServiceReference1.ZHRWS_GET_CERTIFICADO"
                name="ZWSLINK" />
        </client>
    </system.serviceModel>
</configuration>

但是,我仍然会遇到以下错误:

HTTP请求未经客户端身份验证方案“匿名”授权。从服务器接收到的身份验证头是“基本域”

,我假设尝试使用基本身份验证发送不在http中的用户名和密码。请试试这个

<binding name="...">
    <security mode="TransportWithMessageCredential" >
       <message clientCredentialType="UserName" />
    </security>
</binding>