【问题标题】:Managed CSOM on Sharepoint 201. Could not create SSL/TLS secure channelSharepoint 201 上的托管 CSOM。无法创建 SSL/TLS 安全通道
【发布时间】:2019-11-23 16:54:35
【问题描述】:

我有一个 Windows Server 2016 虚拟机和 Visual Studio 2017 社区版。我正在编写一个简单的脚本来检查与 Sharepoint 2013 的连接性。Sharepoint 服务器未安装在 VM 上,它位于 Intranet 中的某个位置。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Microsoft.SharePoint.Client;
using System.Security;

namespace ConsoleApp1
{
    class Program
    {
        static void Main(string[] args)
        {
            string siteUrl = "https://xxx.yyy.org:443";
            ClientContext clientContext = new ClientContext(siteUrl);

            Web site = clientContext.Web;
            List documents = site.Lists.GetByTitle("Documents");

            //Prepare the request
            clientContext.Load(site);

            //Submit the Request
            clientContext.ExecuteQuery();

            Console.ReadKey();
        }
    }
}

但我得到了这个例外:

发生 System.Net.WebException

HResult=0x80131509
Message=请求中止:无法创建 SSL/TLS 安全通道。
源=系统
堆栈跟踪:

在 System.Net.HttpWebRequest.GetResponse()
在 Microsoft.SharePoint.Client.SPWebRequestExecutor.Execute()
在 Microsoft.SharePoint.Client.ClientContext.GetFormDigestInfoPrivate()
在 Microsoft.SharePoint.Client.ClientContext.EnsureFormDigest()
在 Microsoft.SharePoint.Client.ClientContext.ExecuteQuery()
在 C:\Users\AdminDD\source\repos\ConsoleApp1\ConsoleApp1\Program.cs:line 中的 ConsoleApp1.Program.Main(String[] args)

我已阅读此thread 并通过 IE 登录。浏览器的证书似乎有效,问题仍然存在。关于如何解决这个问题有什么建议吗?

【问题讨论】:

    标签: ssl sharepoint-2013 csom


    【解决方案1】:

    我遇到了完全相同的问题。 检查您的项目 .Net 版本。从 4.5 升级后它工作了 --> 4.6

    【讨论】:

      【解决方案2】:

      您应该只对您的网址https://yoursite/ 绝对网址提出请求,仅此而已

      $response = Invoke-WebRequest -Verbose -URI $anUrl -CertificateThumbprint $CertificateThumbprint -UseDefaultCredentials -SessionVariable websession -ErrorAction:Stop
      

      在响应中获取 cookie 身份验证,然后将其添加到您的 csom 查询中

      $request.ClientCertificates.Add($global:cert)
      
      $request.CookieContainer = New-Object System.Net.CookieContainer
      
      $c3 = New-Object System.Net.Cookie($global:cookieName3, $global:cookieVal3, "/", $global:cookieDomaine);
      
      $request.CookieContainer.Add($c3);
      

      here is a working sample

      【讨论】:

        猜你喜欢
        • 2021-12-13
        • 2014-12-26
        • 2017-02-10
        • 2017-08-22
        • 2016-08-03
        • 2018-06-17
        • 1970-01-01
        • 2023-04-08
        • 1970-01-01
        相关资源
        最近更新 更多