域 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 Foundation 2010 2 层安装-工作组上的机器,而不是域上的机器