简体   繁体   中英

To involve SharePoint WCF Service with SSL-Certificate from Client laptop failed

My testing environment is:

  • 1* Server:: SharePoint Site with WCF Service (in the ISAPI folder) and we configured the SSL and Cert on it.
  • 1* Client:: Windows 10 with one Console Application to involve the WCF service

Testing (1):all programs (WCF Service and Console Application) on the SharePoint Server

I created a Console application to invoke the WCF Service in SharePoint. Meantime, the Console application and WCF are on the same server. the outcome is everything works properly. It is successful to upload file into a Document Library.

Testing (2):to simulate my client environment:

  • 1* SharePoint:WCF Service
  • 1* Windows 10:Console application

the outcome failed and I got the error message:

The HTTP request is unauthorized with client authentication scheme 'Anonymous'. The authentication header received from the server was 'NTLM'

To be honest, I stuck here for a while. I also list out a portion of my source code for someone of experience to look at. I also posted some sample code and web.config in here .

Updated.
If we enable NTLM authentication, we have to enable the windows authentication.
在此处输入图像描述
Then when calling the service, we need to provide windows credential.

//it will use the binding and service endpoint address in the system.servicemode section.
        ServiceReference1.ServiceClient client = new ServiceReference1.ServiceClient();
                //windows account on the server.
                client.ClientCredentials.Windows.ClientCredential.UserName = "administrator";
                client.ClientCredentials.Windows.ClientCredential.Password = "abcd1234!";
                try
                {
                    Console.WriteLine(client.SayHello());
                }
                catch (Exception)
                {
                    throw;
                }

Auto-generated configuration.

   <system.serviceModel>
    <bindings>
        <wsHttpBinding>
            <binding name="WSHttpBinding_IService">
                <security mode="Transport">
                    <transport clientCredentialType="Ntlm" />
                </security>
            </binding>
        </wsHttpBinding>
    </bindings>
    <client>
        <endpoint address="https://vabqia969vm:21011/" binding="wsHttpBinding"
            bindingConfiguration="WSHttpBinding_IService" contract="ServiceReference1.IService"
            name="WSHttpBinding_IService">
            <identity>
                <userPrincipalName value="VABQIA969VM\Administrator" />
            </identity>
        </endpoint>
    </client>
</system.serviceModel>

Feel free to let me know if the problem still exists.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM