gpt4 book ai didi

c# - Rest call WebException 401 Unauthorized only in mixed authentication webapp

转载 作者:太空宇宙 更新时间:2023-11-03 16:01:03 25 4
gpt4 key购买 nike

尝试从 SharePoint 应用程序外部(特别是从 .NET 控制台应用程序)进行休息调用时,我遇到了一个奇怪的行为。只要我使用 DefaultCredentials,一切都很好,只要我的 Web 应用程序不允许 FBA(基于表单的身份验证),我就可以毫无问题地移交 NetworkCredentials。

但是一旦激活了 FBA 身份验证,我就无法进行其余调用,并返回 401 Unauthorized。

var req = (HttpWebRequest)HttpWebRequest.Create("http://{url}/_api/web/title");
req.Method = "GET";
req.Credentials = new NetworkCredential("{user}", "{pass}");
req.Headers.Add("X-FORMS_BASED_AUTH_ACCEPTED", "f");
var response = (HttpWebResponse)req.GetResponse();

我也试过这种方式,像这样交出凭据:

var req = (HttpWebRequest)HttpWebRequest.Create("http://{url}/_api/web/title");
req.Method = "GET";
req.Headers.Add("X-FORMS_BASED_AUTH_ACCEPTED", "f");
var ccache = new CredentialCache();
ccache.Add(new Uri("http://{url}"), "Basic", new NetworkCredential("{user}", "{pass}"));
req.Credentials = ccache;
var response = (HttpWebResponse)req.GetResponse();

有没有人提示或知道可能出了什么问题,以及如何在混合身份验证 Web 应用程序中实现使用凭据访问 rest api 的目标?

最佳答案

一个可行的解决方法是将您的 SharePoint Web 应用程序扩展到第二个区域 - 并且在该区域没有启用 FBA。所以你会有这样的事情:www.mysharepointsite.com <- FBA + Windows 身份验证访问restapi.mysharepointsite.com <- 仅限 Windows 身份验证

然后只需将您的调用指向 restapi.mysharepointsite.com 而不是 www.mysharepointsite.com。

关于c# - Rest call WebException 401 Unauthorized only in mixed authentication webapp,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21400670/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com