gpt4 book ai didi

c# - 为什么在使用正确的凭据发出 HttpWebRequest 时得到 401 Unauthorized?

转载 作者:行者123 更新时间:2023-11-30 12:52:59 27 4
gpt4 key购买 nike

我有一个外部站点的 URL 以及用户名和密码。如果我通过浏览器访问该 URL,则会弹出一个身份验证框。我给它用户名和密码,我就可以访问该页面。

我正在尝试通过代码使用 HttpWebRequest 对象实现相同的目的:

var webRequest = (HttpWebRequest)WebRequest.Create(url);

webRequest.GetResponse() 等等……

在网站所有者为网站添加一些保护并向我提供用户名和密码之前,这曾经有效。WebRequest 有一个 credentials 属性,我设置如下:

webRequest.Credentials = new NetworkCredential("username", "password")

我也试过:

webRequest.Credentials = new NetworkCredential("username", "password", “url domain”)

这总是会导致错误:

“远程服务器返回错误:(401) 未经授权。”

我是否漏掉了一些明显的东西?

最佳答案

使用 System.Net.NetworkCredential 可能无效,具体取决于资源的身份验证模型。了解远程站点使用的模型会很有帮助。

OpenID、表单例份验证和集成 Windows 身份验证的工作方式各不相同。您可以尝试使用@Christoph 和@Lex 描述的工具推断出他们使用的身份验证方法,或者直接联系远程网站提供商。

如果远程站点使用协商协议(protocol),例如 Kerberos 或 NTLM,那么您遇到的行为确实很奇怪;但是,某些其他协议(protocol)可能需要您以其他方式处理。

关于c# - 为什么在使用正确的凭据发出 HttpWebRequest 时得到 401 Unauthorized?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3307709/

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