如何解决WebClient 忽略凭据
目标:使用 .net core 连接到 SMB 共享,程序必须独立于平台(没有 winapi 调用等)。
我对 SO 的研究:关于 SO 的大量主题都涵盖了这一点,但没有一个对我有用,要么是因为它们使用了 winapi,要么是因为它们显示的代码示例根本不起作用。
我的尝试:直到最近我自己一直在使用 winapi,但这不再是一种选择。我已经使用 CredentialCache 尝试了许多示例,但都没有奏效。这是我目前的尝试和痛苦的原因:
var cred = new NetworkCredential { Username = "user",Password = "pass" };
using var wc = new WebClient();
wc.Credentials = cred;
var bytes = wc.DownloadData(new Uri(@"\\server\share\file"));
如果我在将凭据存储到 Windows 凭据管理器中的共享时运行此代码,它将起作用(废话),一旦我删除这些凭据,它就会开始抛出用户名或密码不正确的异常。
我设置的凭据是正确的,并且我已经通过使用 wireshark 确认我设置的凭据不是用于连接的凭据。而是使用了我的登录凭据。
我一直在查看此处的源代码:WebClient source,但我认为没有理由忽略我提供的凭据。
我在这里俯瞰什么?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。