模拟服务和网络位置的问题

问题描述 投票:4回答:1

我有一个Windows服务,用于轮询用户选择的目录以查找新文件。当选择网络位置(同一网络上的远程计算机上的文件夹)时,我向用户查询远程计算机的用户名和密码(用户有权访问该文件夹),我验证相同并将其存储到服务的注册表。这种方法工作正常。(服务作为localmachine运行并使用模拟代码)。

但有些情况我不知道..

1.直接连接到网络的无线硬盘/存储设备。目前我使用模拟代码来提供用户凭据。在这种情况下,驱动器是否可以直接作为localmachine运行的服务访问?

2.如何处理有权访问该文件夹的域用户?

我正在使用以下代码来模拟用户

https://stackoverflow.com/a/9213965/848968

UserImpersonation impersonator = new UserImpersonation();
impersonator.impersonateUser("username", "", "password"); //No Domain is required

如果是域用户,该怎么办?

c# .net windows service impersonation
1个回答
2
投票
  1. 直接连接到网络的无线硬盘/存储设备。目前我使用模拟代码来提供用户凭据。在这种情况下,驱动器是否可以直接作为localmachine运行的服务访问?

驱动器是如何连接的?如果它的SMB通过UNC路径,那应该没问题。当您进入映射驱动器时,Windows服务无法使用这些驱动器。

  1. 如何处理有权访问该文件夹的域用户?

impersonator.impersonateUser("username", "domain", "password");

您可能还想查看this answer以获取更多模拟信息和示例代码。有一个很棒的图书馆可以帮到你。

© www.soinside.com 2019 - 2024. All rights reserved.