【发布时间】:2010-11-26 14:03:54
【问题描述】:
在 VB.NET 程序中,我想从文件系统读取文件,然后使用不同的凭据将这些文件的压缩版本写入远程、安全的文件共享。
在cmd提示符下的类似操作是:
net use s: \\server\share /user:foo P@ssw0rd
copy a+b | compress > s:\foo.bin
net use s: /delete
这可能吗?如何? (不用担心压缩和文件 i/o。我的兴趣在于安全部分。)
我用WindowsImpersonationContext 做吗?
编辑:你说得对,我真的不想映射驱动器;我想要做的是使用不是默认凭据的凭据访问共享。该应用程序由各种用户运行,并且他们通常没有共享的写入权限。仅出于此单个文件的目的,我想允许用户写入共享。
那么如何使用替代凭据将单个文件写入共享?请记住,我需要默认凭据或身份来读取充当压缩输入的文件。
UserX reads files a1 and b1 as UserX, writes file c1 as UserA
UserY reads files a2 and b2 as UserY, writes file c2 as UserA
这有意义吗?
我知道我可以直接在共享上创建文件。问题是如何使用替代凭据来做到这一点?我知道在创建共享时如何传递 alt creds,这就是我介绍创建共享的想法的原因。我真的不需要共享,因为它只针对单个文件完成,并且只在程序内完成。
我知道我可以先创建文件,然后将文件复制到共享中。我不想这样做,因为它是一个大文件,我想流式传输一次。
【问题讨论】:
-
我会将文件直接复制到 \\server\share\myfile.text,而不是将 \\server\share 映射到 s: 然后复制到 s:myfile.text。如果不是出于任何其他原因,但是当您以这种方式弄乱用户的配置时会引发问题(已经映射了?如果在断开连接之前出现故障怎么办?)
标签: .net windows security filesystems impersonation