远程服务器返回错误:(401) 未经授权。在 ASP.NET 中使用 CSOM

2024-01-20

我尝试提取我创建的一些 SharePoint 2013 列表数据,这些数据在我的计算机上本地运行以及在服务器本地运行时工作正常。在本地和服务器上本地运行时,我使用相同的凭据。问题是,当我发布并导航到服务器上的 ASP.NET 应用程序时,我收到“远程服务器返回错误:(401) 未经授权”。错误...

我查看了 stackoverflow 上的很多帖子以及网络上的其他一些文章

这指出上下文似乎正在使用 IUSR:http://blogs.msdn.com/b/sridhara/archive/2014/02/06/sharepoint-2013-csom-call-from-web-part-fails-with-401-for-all-users.aspx http://blogs.msdn.com/b/sridhara/archive/2014/02/06/sharepoint-2013-csom-call-from-web-part-fails-with-401-for-all-users.aspx

这提到尝试设置默认网络凭据:https://sharepoint.stackexchange.com/questions/10364/http-401-unauthorized-using-the-driven-client-object-model https://sharepoint.stackexchange.com/questions/10364/http-401-unauthorized-using-the-managed-client-object-model

我尝试使用本文中提到的修复程序,并尝试强制上下文使用 DefaultNetworkCredentials,但没有成功。我希望应用程序使用登录用户的凭据而不是机器的凭据......

这是我正在使用的代码:

        SP.ClientContext context = new SP.ClientContext("MySPDevInstance");
        context.Credentials = CredentialCache.DefaultNetworkCredentials;

        Entity entity = context.Web.GetEntity(collectionNamespace, collectionName);
        LobSystem lobSystem = entity.GetLobSystem();
        LobSystemInstanceCollection lobSystemInstanceCollection = lobSystem.GetLobSystemInstances();

        context.Load(lobSystemInstanceCollection);
        context.ExecuteQuery();

        LobSystemInstance lobSystemInstance = lobSystemInstanceCollection[0];
        FilterCollection filterCollection = entity.GetFilters(filter);

        filterCollection.SetFilterValue("LimitFilter", 0, 1000);

        EntityInstanceCollection items = entity.FindFiltered(filterCollection, filter, lobSystemInstance);

服务器运行 IIS 6.0

任何建议将不胜感激!

谢谢


我假设您的 ASP.NET 网站正在使用 Windows 集成 (NTLM) 身份验证。通过这种方式进行身份验证的用户无法从服务器端(Web 服务器)向第二个位置进行身份验证。您遇到了 NTLM 的所谓“双跳”(1) 限制。您必须在服务器端使用专用帐户,或者如果您确实想要使用登录用户的身份,则必须使用允许委派的身份验证方案,例如 Kerberos。

如果您确实需要用户身份来访问 SharePoint 数据并且无法更改身份验证方案,那么最好的方法是使用 JavaScript CSOM。这意味着用户直接向 SharePoint 服务器进行身份验证(单跃,而不是双跃),并且您的 ASP.NET 站点向用户提供包含此脚本的页面。

(1) http://blogs.msdn.com/b/knowledgecast/archive/2007/01/31/the-double-hop-problem.aspx http://blogs.msdn.com/b/knowledgecast/archive/2007/01/31/the-double-hop-problem.aspx

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

远程服务器返回错误:(401) 未经授权。在 ASP.NET 中使用 CSOM 的相关文章

随机推荐

  • 使用 Kerberos 对 Windows 进行 Ansible 不起作用

    我尝试使用 Ansible 1 9 0 1 使用域用户名配置 Windows 服务器 我已经成功设置了 Linux Ansible 控制盒 并且能够使用基本身份验证来运行 ansible ansible playbook play 但是 使
  • 如何从剪贴板中清除指定格式的数据?

    我将一些数据放入剪贴板 从剪贴板复制数据后 我想清除数据而不清除整个剪贴板 像这样的东西 wchar t buf NULL if OpenClipboard NULL 0 HANDLE hData GetClipboardData CF U
  • 如何在以 struct 作为参数的 Ruby FFI 方法中包装函数?

    我正在尝试使用 ruby ffi 从共享对象调用函数 我将以下内容编译成共享对象 include
  • Laravel 的数据表服务器端 php 类

    我希望我的数据表在服务器端处理数据 我引用了这个示例 服务器端示例 http www datatables net examples data sources server side html 然而 本例中给出的服务器端 php 类 ssp
  • Internet Explorer 10 后退按钮缓存

    在 Internet Explorer 10 中 如果您按后退按钮 它会尝试从浏览器缓存中获取上一页 此行为与几乎所有其他浏览器 包括 IE9 不同 在 IE9 中 按后退按钮将完全重新加载上一页 而不是重用缓存 我如何从网站与 IE10
  • 错误 22 无法从程序集中加载“EnsureBindingRedirects”任务

    我使用 vs 2013 克隆了一个项目 当我运行它时 我收到此错误 Error 1 The EnsureBindingRedirects task could not be loaded from the assembly D BMaste
  • dplyr 输出类 data.frame

    我可以总结一个数据框dplyr像这样 mtcars gt group by cyl gt summarise mean mpg 将输出转换回类data frame 我目前的做法是这样的 as data frame mtcars gt gro
  • 如何使用 --set 来设置 Prometheus 图表的值?

    例如 设置alertmanager ingress annotations要添加两个项目 这两种方法都不起作用 helm install stable prometheus set alertmanager ingress enabled
  • AES CBC 加密/解密仅解密前 16 个字节

    我正在使用 AES CBC 和 openssl 进行一些工作 目前 我遇到了一个问题 我无法猜测出什么问题 一如既往 如果消息长度小于 16 字节 则加密和解密过程可以正常工作 但当消息大于 16 字节时 解密仅对第 16 个字节有效 当我
  • 由于递归隐式,spray-json 中的 NPE(上下文绑定问题?)

    也许我发现了一个bug http goo gl C79j8在 Spray json 中 当我尝试获取具有自身类型字段的对象的 json 时 出现空指针异常 例子是 case class TestItem subitems Option Li
  • System.Windows.Media.RenderCapability.Tier 返回的不是渲染模式

    I use System Windows Media RenderCapability Tier http msdn microsoft com en us system windows media rendercapability tie
  • MPMusicPlayerController 未正确准备/预加载

    我正在使用 MPMusicPlayerController 因此我的应用程序可以播放用户通过 iTunes 购买的音乐 当我选择一首歌曲并开始播放时 声音开始之前有一段延迟 我假设这首歌是从云端缓冲的 问题是我还没有找到一种方法来知道缓冲何
  • socket.io 通过 XHR 轮询强制断开连接

    我有一个客户端 服务器应用程序 在服务器上使用nodejs 并使用socket io 作为连接机制 出于与我的应用程序相关的原因 我希望每个浏览器只有一个活动连接 并拒绝来自稍后可能在会话期间打开的其他选项卡的所有连接 这对于 WebSoc
  • 在.Net 3.5中写入app.config?

    我需要能够写入 Net 3 5 Windows 应用程序中的 app config 文件来存储一些系统设置 我可以从文件中读取但无法写入它 我发现的所有内容都是针对 2 0 的 与 3 5 看起来不一样 NET 2 0 是 NET 3 5
  • startkey 和 endkey 在 CouchDB 中到底是如何工作的?

    我正在使用 CouchDB 中的位置数据库 我创建了一个视图 其中我的键是一个带有纬度和经度舍入值的数组 现在我根据以下条件进行选择 Startkey 52 34 4 883 Endkey 52 37 4 903 在这里 我预计只会收到纬度
  • Parse.com 查询的主线程问题

    我正在尝试在我的 Unity 游戏中使用 parse com 服务 我的问题是根据查询收到的结果实例化对象 例如 当我运行以下代码时 var queryCurrent ParseObject GetQuery Levels WhereEqu
  • 自定义我的位置叠加层更新时间

    我正在努力实施MyLocationOverlay http code google com android add ons google apis reference com google android maps MyLocationOv
  • 从外部文件链接 svg 路径以 HTML 形式显示

    我有一堆 svg 路径 用于图标 如果直接放在 html 中 它们可以正常工作 但由于有这么多 我想将它们放入外部文件中 我不能使用object or img因为我正在使用 css 来设置它们的样式 有任何想法吗
  • 使用 itext 对 PDF 页面重新排序

    我在用文本 pdf图书馆 有谁知道如何移动现有 pdf 中的页面吗 其实我想移动文件开头的最后几页 它类似于下面的内容 但我不明白它是如何工作的 reader new PdfReader baos toByteArray n reader
  • 远程服务器返回错误:(401) 未经授权。在 ASP.NET 中使用 CSOM

    我尝试提取我创建的一些 SharePoint 2013 列表数据 这些数据在我的计算机上本地运行以及在服务器本地运行时工作正常 在本地和服务器上本地运行时 我使用相同的凭据 问题是 当我发布并导航到服务器上的 ASP NET 应用程序时 我