域 PC 和 SharePoint 站点上的不同凭据。谁的凭据用于 HTTP 请求?

Posted

技术标签:

【中文标题】域 PC 和 SharePoint 站点上的不同凭据。谁的凭据用于 HTTP 请求?【英文标题】:Different Credentials on Domain PC and SharePoint site. Who's Credentials are used for HTTP Request? 【发布时间】:2014-06-22 14:58:02 【问题描述】:

给定一个使用 Windows 身份验证的 SharePoint 2010 站点,如果 UserA 登录到域中的 PC,则 UserB 使用 PC 使用域凭据登录到 SharePoint 站点,然后加载一个 WebPart,该 WebPart 将 HTTP 请求发送到互联网,HTTP 请求使用了谁的凭据?

【问题讨论】:

【参考方案1】:

在发送 HTTP 请求时,将使用当前登录到 SharePoint 站点的用户的凭据。 如果站点和 SharePoint 位于同一个域中,SharePoint 提供了自动登录的便利,但如果用户注销并且新用户登录,则将使用新用户凭据,它与谁登录无关到系统。

谢谢

萨希尔

【讨论】:

【参考方案2】:

我假设你会这样做:

 WebClient webClient = new WebClient();
 webClient.Credentials = System.Net.CredentialCache.DefaultCredentials;
 byte[] data = webClient.DownloadData("address");

不会使用 UserA 和 UserB 凭据。

如果您使用默认 NTLM Windows 身份验证协议,则不可能以登录用户的身份进行任何外部(对任何其他计算机)请求。

如果您的域被配置为使用 Kerberos 协议,那么 SP 可能能够(根据 Kerberos 配置)以在另一台计算机上运行的登录用户服务(例如 HTTP)的身份进行外部调用。

如果您将调用 HTTP 请求封装到 SPUtility.RunWithElevatedPriviliges 请求将在 SharePoint 系统帐户(类似于 sp_service)的身份下完成。

【讨论】:

以上是关于域 PC 和 SharePoint 站点上的不同凭据。谁的凭据用于 HTTP 请求?的主要内容,如果未能解决你的问题,请参考以下文章

如何在SharePoint中将Web部件从一个站点放到另一个站点?

将 Excel 2007 中的文本写入 Sharepoint 站点上的 .txt 文件会导致运行时错误“76”找不到路径

sharepoint 服务器域账户开发 Url无效

Sharepoint Foundation 2010 2 层安装-工作组上的机器,而不是域上的机器

无法针对 ADAM 对 SharePoint Extranet 站点进行身份验证

Windows Server 2016-管理站点复制