动态导航网络服务错误 401 未经授权

本文关键字:授权 错误 导航 网络服务 动态 | 更新日期: 2023-09-27 18:34:43

使用动态导航Web服务时,出现以下错误:

请求失败,HTTP 状态为 401:未经授权。

但是当我在浏览器中尝试时,它可以工作.我尝试了以下方法,但仍然无法正常工作:

service.UseDefaultCredentials = true;
service.PreAuthenticate = true;

也:

service.Credentials = new System.Net.NetworkCredential("XXXXX", "XXXX","XXXX");

我什至尝试使用动态导航访问键,但它也没有用。

有什么新建议吗?

动态导航网络服务错误 401 未经授权

我知道这个线程已经有 4 年多的历史了,但我想如果 somone 目前正在寻找这个问题,他会遇到这个 trhead,就像我一样。

NTLM和Xamarin目前存在问题(在我写这篇文章的那一刻,这个问题也存在于MacOS上的.net核心中(。

请参阅链接:

iOS:https://github.com/xamarin/xamarin-macios/issues/7770

安卓:https://developercommunity.visualstudio.com/content/problem/756697/last-visual-studio-update-brakes-ntlm-authenticati.html

解决方案是使用"MonoWebRequestHandler"。对于Android和iOS解决方案的组合,请查看我的最新帖子

这里

我希望我能通过这篇文章节省索蒙斯的时间!

有几件事可能是错误的。

是否检查了服务层设置为哪种身份验证?是否有默认公司集(或者您是否在 URL 中选择公司(。NTLM 是打开还是关闭;这些都是可能弹出此错误的原因。

我认为你的代码应该是这样的

service.UseDefaultCredentials = false;
service.Credentials = new System.Net.NetworkCredential("XXXXX", "XXXX","XXXX");

如果您使用的是 PHP 或 Java 或 XAMARIN,则必须启用 NTLM 设置属性身份验证使用 NTLM 身份验证

下面的这段代码对我有用(我并没有真正调整服务层 - 它或多或少有默认设置(:

service.ClientCredentials.Windows.ClientCredential.Domain = <domain>;
service.ClientCredentials.Windows.ClientCredential.UserName = <username>;
service.ClientCredentials.Windows.ClientCredential.Password = <password>;
service.ClientCredentials.Windows.AllowedImpersonationLevel = 
  System.Security.Principal.TokenImpersonationLevel.Delegation;

如果上述方法不起作用,请尝试从NetworkCredential中删除域 - 只需使用您的用户名和密码(显然,如果客户端和服务器位于同一中(。