我可以在尝试连接到未经身份验证的网络路径时显示 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 身份验证在我取消登录时显示文件