• In the earlier version of the SharePoint List adapters you had to modify the SharePointUtility code which is a VB project to be able to support HTTPS. Basically it uses the SharePoint list webservice and the WCF client configuration is performed in SharePointUtility code which needs to be modified to support HTTPS.

    Here is some of the code that you can modify and try

    Public Function RemoteCertificateValidationCallback(ByVal sender As Object, ByVal certificate As System.Security.Cryptography.X509Certificates.X509Certificate, ByVal chain As System.Security.Cryptography.X509Certificates.X509Chain, ByVal sslPolicyErrors As System.Net.Security.SslPolicyErrors) As Boolean

    Return True

    End Function

    ''' <summary>

    ''' Resets the conneciton for the current client which is used for the lists service

    ''' </summary>

    ''' <remarks></remarks>

    Private Sub ResetConnection()

    System.Net.ServicePointManager.ServerCertificateValidationCallback = New System.Net.Security.RemoteCertificateValidationCallback(AddressOf RemoteCertificateValidationCallback)

    ' Setup the binding with some enlarged buffers for SharePoint

    Dim binding = New BasicHttpBinding()

    ' Change the security mode if we're using http vs https

    If (_sharepointUri.Scheme.ToLower() = "http") Then

    binding.Security.Mode = BasicHttpSecurityMode.TransportCredentialOnly

    ElseIf (_sharepointUri.Scheme.ToLower() = "https") Then

    binding.Security.Mode = BasicHttpSecurityMode.Transport

    Else

    Throw New ArgumentException("SharePoint URL Scheme is not recognized: " + _sharepointUri.Scheme)

    End If

    '@@ binding.Security.Transport.ClientCredentialType = HttpClientCredentialType.Windows

    '@@ binding.Security.Transport.ProxyCredentialType = HttpClientCredentialType.Windows

    'binding.Security.Transport.ClientCredentialType = HttpClientCredentialType.Ntlm

    ' Send credentials and adjust the buffer sizes (SharePoint can send big packets of data)

    If (_sharepointUri.Scheme.ToLower() = "http") Then

    binding.Security.Transport.ClientCredentialType = HttpClientCredentialType.Ntlm

    ElseIf (_sharepointUri.Scheme.ToLower() = "https") Then

    binding.Security.Transport.ClientCredentialType = HttpClientCredentialType.Windows

    binding.Security.Transport.ProxyCredentialType = HttpClientCredentialType.Windows

    End If

    binding.MaxReceivedMessageSize = Int32.MaxValue

    binding.ReaderQuotas.MaxBytesPerRead = Int32.MaxValue

    binding.ReaderQuotas.MaxArrayLength = Int32.MaxValue

    binding.ReaderQuotas.MaxDepth = Int32.MaxValue

    binding.ReaderQuotas.MaxNameTableCharCount = Int32.MaxValue

    binding.ReaderQuotas.MaxStringContentLength = Int32.MaxValue

    binding.ReceiveTimeout = New TimeSpan(24, 0, 0)

    ' Create the client with the given settings

    Dim ep = New EndpointAddress(_sharepointUri)

    ' Create the client object

    If (Not _sharepointClient Is Nothing) Then

    Dim dispose As IDisposable = _sharepointClient

    dispose.Dispose()

    _sharepointClient = Nothing

    End If

    _sharepointClient = New ListsSoapClient(binding, ep)

    ' Only need to add this once, the endpoint will be shared for future instances

    Dim clientCredentials As Description.ClientCredentials = _

    (From e In _sharepointClient.Endpoint.Behaviors _

    Where TypeOf (e) Is Description.ClientCredentials).Single()

    clientCredentials.Windows.AllowedImpersonationLevel = _

    TokenImpersonationLevel.Impersonation

    clientCredentials.Windows.ClientCredential = _credential

    End Sub


    Naveen Abraham