Skip to main content
 首页 » 编程设计

c#之使用 DataContext 在 Sharepoint Webpart 上抛出 401 未经授权的异常

2024年04月30日44txw1958

我正在使用以下代码创建 Sharepoint 数据上下文的新实例:

spDataContext con = new spDataContext(new Uri("http://mysite/subsite/_vti_bin/ListData.svc")); 
con.Credentials = CredentialCache.DefaultCredentials; 

然后我尝试使用

获取项目
var result = con.testingList.ToList(); 

然后下面的错误显示:

"401 UNAUTHORIZED"

错误截图如下:

但如果我通过提供共享点管理员用户名和密码来更改凭据,我就能够获取这些项目。

con.Credentials = new NetworkCredential(username, password); 

但问题是:我想使用当前用户的凭据而不是管理员帐户,因为并非所有项目都应该被当前用户看到。

来自 IIS 的一些附加信息:

起初,启用了所有身份验证方法,然后我尝试关闭基本身份验证和摘要身份验证以查看是否有帮助,但仍然抛出异常。

那么如何解决这个问题呢??

请您参考如下方法:

通过检查断点、写入日志或检查服务器的审计跟踪/日志 (IIS/SharePoint) 来检查您实际连接的帐户 - 您确定它是一个有效帐户而不是 IUSR_xyz IIS 帐户或类似的帐户那?还要检查您是否没有点击 Kerberos "double hop"如果您正在使用分布式架构。当向混合中添加另一个服务器/服务时,这通常会使您感到困惑。