我可以在尝试连接到未经身份验证的网络路径时显示 Windows 身份验证对话框吗

Posted

技术标签:

【中文标题】我可以在尝试连接到未经身份验证的网络路径时显示 Windows 身份验证对话框吗【英文标题】:Can I Show Windows Authentication Dialog When Trying To Connect To Un-Authenticated Network Path 【发布时间】:2014-08-07 14:12:59 【问题描述】:

在我的应用程序中,它允许用户远程连接内部网络内的计算机和文件夹进行故障排除等。

我的问题是他们尝试连接的其中一些计算机尚未经过身份验证,因此当我将 UNC 路径插入资源管理器的新进程时,它不会出错,而只是返回一些随机本地文件夹(我认为是我的文档)。

我的问题是...有没有办法可以调用 Windows 身份验证对话框以允许用户对远程 PC 进行身份验证?如果用户只是在普通的资源管理器窗口中输入相同的地址,则会出现身份验证屏幕,但是,使用我的应用程序却不会。

无论如何我可以强制它显示给用户吗?

任何帮助表示赞赏,谢谢。

【问题讨论】:

【参考方案1】:

基于此讨论:

Prompting for network credentials in VB.NET

您可以在 vb.net 中查看 CredUIPromptForCredentials API,只需 P/Invoke 即可。欲了解更多信息:

http://www.pinvoke.net/default.aspx/credui/CredUIConfirmCredentials.html http://msdn.microsoft.com/en-us/library/aa375177(VS.85).aspx

【讨论】:

感谢 Neolisk 的回复。我已使用您的帖子现在允许我调出凭据对话框,但我无法弄清楚如何将其链接到提示输入网络位置。例如,如何确定 UNC 路径是否因身份验证不正确而被拒绝,使用 PInvoke 调出凭据对话框,然后将这些详细信息传递回网络路径。 @Riples:看看这个 - ***.com/questions/5732347/….

以上是关于我可以在尝试连接到未经身份验证的网络路径时显示 Windows 身份验证对话框吗的主要内容,如果未能解决你的问题,请参考以下文章

尝试使用 HTTParty 或 Net:HTTP(或等)连接到“摘要式身份验证”网络服务

Apache 中的基本 HTTP 身份验证在我取消登录时显示文件

连接到谷歌云消息云连接服务器的身份验证错误

iPhone 在连接到 Mac 时显示问号(代替其图标)

Apache HttpClient DigestAuth - 401,未经授权。但是凭证没问题[重复]

HTTP 请求未经客户端身份验证方案“基本”授权。从服务器收到的身份验证标头是“协商,NTLM”