c# - 使用 WNetUseConnection 时如何在客户端计算机上显示凭据对话框?
问题描述
我正在开发一个 Web 应用程序,我需要在其中连接远程机器以访问其共享驱动器上的文件。在授予对这些文件的访问权限之前,需要对用户进行身份验证。我正在使用 WNetUseConnection 来提示凭据对话框。
WNetUseConnection(IntPtr.Zero, nr, "", "", CONNECT_INTERACTIVE | CONNECT_PROMPT, null, null, null);
问题在于它在托管此应用程序的服务器上打开对话框,而不是在客户端计算机上。你能帮我在客户端机器上打开对话框吗?
谢谢!!!
示例代码:
网络层:
Public static Connect(string remoteUnc, string username, string password, bool promptUser)
{
NETRESOURCE nr = new NETRESOURCE
{
dwType = RESOURCETYPE_DISK,
lpRemoteName = remoteUnc
};
int result;
if (promptUser)
{
result = WNetUseConnection(IntPtr.Zero, nr, "", "", CONNECT_INTERACTIVE | CONNECT_PROMPT, null, null, null);
}
else
{
result = WNetUseConnection(IntPtr.Zero, nr, password, username, 0, null, null, null);
}
if (result != NO_ERROR)
{
throw new Win32Exception(result);
}
}
用法:
somefunction { using (NetworkLayer netAccess = NetworkLayer.Connect(hostName,null,null,true)) { //一些逻辑 } }
网页接口:
[HttpGet]
public IActionResult RetrieveServerDetails(string hostname)
{
try
{
some function(hostname);
}
catch (Exception ex)
{
return InternalServerError(ex);
}`enter code here`
}
然后从 jquery 调用它。
解决方案
推荐阅读
- spring-mvc - 如何优化这个控制器和 Thymeleaf-View?
- powershell - 变量powershell的新值
- java - 如何在 MpChart 的 BarChart 中使 bar 独立且不相关?
- javascript - 如何使用 InboxSDK 在 Gmail 和其他网站上运行 chrome 扩展程序?
- blueprism - Blue Prism : 需要帮助来更新收藏
- python - 如何从点云或 3d 对象分析/计算人体部位的周长?
- javascript - “system.Action”不是有效的 Windows 运行时参数类型
- c# - 从 Session 更改 dbContext 连接字符串
- python - 地理分割不匹配
- javascript - Wordpress 高级自定义字段重复器问题,重复器字段一次为所有这些字段激活相同的动画