【问题标题】:Cause Winforms application to show user credentials dialog when a file operation fails当文件操作失败时,导致 Winforms 应用程序显示用户凭据对话框
【发布时间】:2012-05-28 08:43:07
【问题描述】:

我有一个简单的更新程序,可以将文件从公司服务器复制到用户的机器上。

对于内部 LAN 上的大多数人来说,这没有问题,但一些员工从 LAN 访问它,他们不会自动通过相关服务器进行身份验证。

通常尝试访问此服务器(例如通过资源管理器)只会弹出一个用户凭据对话框,要求用户提供可以访问共享目录的登录名。

在我的 Winforms 应用程序中,我只需使用 File.Copy 之类的操作来移动文件。

我的应用程序如何让 Windows 提示身份验证,而不仅仅是抛出异常?

我愿意自己做一些工作,但我真正希望的是 Windows 提供了一种方法来实现这一点。

否则,我正在考虑尝试访问并显示一条错误消息,指示用户使用资源管理器进行身份验证。

有没有其他很好的方法来解决这个问题,而无需为 50 行程序重新发明轮子? :-)

【问题讨论】:

    标签: c# winforms authentication file-io


    【解决方案1】:

    您可以使用 shell API 来实现这一点(Windows Explorer 基于相同的 API)- 而不是 File.Copy,您可以 pinvoke SHFileOperation

    【讨论】:

    • 我认为这可能是朝着正确方向迈出的一步,但是在我尝试复制文件之前,我尝试访问它们以读取上次修改的日期/时间。我可以用另一个 shell 函数来做到这一点吗?
    • 好吧,既然你是唯一的回答者,而且它让我走上了正轨,那么你就可以得分了。 :-)
    猜你喜欢
    • 1970-01-01
    • 2017-04-14
    • 1970-01-01
    • 2011-11-25
    • 2023-03-23
    • 1970-01-01
    • 1970-01-01
    • 2021-02-17
    • 1970-01-01
    相关资源
    最近更新 更多