c# - WebClient 类的域凭据不起作用

标签 c# .net windows credentials windowsdomainaccount

我正在尝试通过 C# 代码获取网站的 HTML 源代码。当我使用 Windows 身份验证访问站点时,以下代码有效:

using (WebClient client = new WebClient())
            {
                client.Credentials = CredentialCache.DefaultCredentials;
                using (Stream stream = client.OpenRead("http://intranet/"))
                using (StreamReader reader = new StreamReader(stream))
                {
                    MessageBox.Show(reader.ReadToEnd());
                }
            }
当我手动输入我的域凭据时,我收到一条“未经身份验证”的消息。
using (WebClient client = new WebClient())
            {
                NetworkCredential credentials = new NetworkCredential("username", "pass", "domain");
                client.Credentials = credentials;
                using (Stream stream = client.OpenRead("http://intranet/"))
                using (StreamReader reader = new StreamReader(stream))
                {
                    MessageBox.Show(reader.ReadToEnd());
                }
            }
为什么会这样?

最佳答案

尝试这个:

CredentialCache cc = new CredentialCache();
cc.Add(
    new Uri("http://intranet/"), 
    "NTLM", 
    new NetworkCredential("username", "pass", "domain"));
client.Credentials = cc;

关于c# - WebClient 类的域凭据不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1680718/

相关文章:

windows - 解密 SAMSUNG 中的 hash windows 密码

c#:如何使用默认空格+一组附加分隔符拆分字符串?

c# - 以编程方式点击网页

C# Windows 窗体自动关闭

c++ - 错误 C2664 : 'int wsprintfW(LPWSTR,LPCWSTR,...)' : cannot convert argument 1 from 'char [15]' to 'LPWSTR'

mysql - vb.net INSERT CURDATE() 到 MySQL 问题

c# - 无法从 COR_PROFILER_PATH 和 COR_PROFILER 环境变量解析探查器路径。使用垫片时

c# - 多列数据转换

c# - 如何防止加载 WPF 应用程序?

c# - 无法获得准确的文件大小