相关疑难解决方法(0)

连接到网络共享时如何提供用户名和密码

当连接到当前用户(在我的情况下,支持网络的服务用户)没有权限的网络共享时,必须提供名称和密码.

我知道如何使用Win32函数(WNet*来自的家族mpr.dll),但是想用.Net(2.0)功能.

有哪些选择?

也许更多信息有助于:

  • 用例是Windows服务,而不是Asp.Net应用程序.
  • 该服务在没有共享权限的帐户下运行.
  • 客户端不知道共享所需的用户帐户.
  • 客户端和服务器不是同一域的成员.

.net c# passwords networking winapi

178
推荐指数
7
解决办法
25万
查看次数

从具有凭据的远程非受信任域访问共享文件(UNC)

我们遇到了一个需要解决的有趣情况,我的搜索已经发现了.因此,我呼吁SO社区寻求帮助.

问题是:我们需要以编程方式访问不在我们域中的共享文件,并且不在远程文件共享/ UNC的可信外部域中.当然,我们需要为远程机器提供凭据.

通常,人们可以通过以下两种方式之一解决此问题:

  1. 将文件共享映射为驱动器并在那时提供凭据.这通常使用NET USE命令或复制的Win32函数完成NET USE.
  2. 使用UNC路径访问文件,就好像远程计算机位于域上一样,并确保在远程计算机上以本地用户身份运行程序运行的帐户(包括密码).基本上利用了当用户尝试访问共享文件时Windows将自动提供当前用户凭据的事实.
  3. 不要使用远程文件共享.使用FTP(或其他方法)传输文件,在本地处理它,然后将其传回.

出于各种各样的原因,我们的安全/网络架构师拒绝了前两种方法.第二种方法显然是一个安全漏洞; 如果远程计算机受到危害,则本地计算机现在处于危险之中.第一种方法是不能令人满意的,因为新安装的驱动器是在程序访问文件期间本地计算机上的其他程序可用的共享资源.尽管这很可能是暂时的,但他们认为这仍然是一个漏洞.

他们对第三个选项开放,但远程网络管理员坚持使用SFTP而不是FTPS,而FtpWebRequest仅支持FTPS.SFTP 更适合防火墙的选项,我可以使用几个库来实现这种方法,但如果可以的话,我宁愿减少我的依赖项.

我在MSDN上搜索了使用远程文件共享的托管或win32方法,但我没有想出任何有用的东西.

所以我问:还有另外一种方法吗?我是否错过了一个超级秘密的win32功能,可以满足我的需求?或者我必须追求选项3的一些变体吗?

c# windows file-sharing unc

144
推荐指数
4
解决办法
18万
查看次数

使用用户名和密码连接到网络驱动器

如何提供凭证以便我可以连接到.NET中的网络驱动器?

我正在尝试从网络驱动器检索文件,并需要提供用户凭据才能访问该驱动器.

.net c#

21
推荐指数
4
解决办法
10万
查看次数

标签 统计

c# ×3

.net ×2

file-sharing ×1

networking ×1

passwords ×1

unc ×1

winapi ×1

windows ×1