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

Problems with Impersonated Service and Network Locations

我有一个 windows 服务,可以轮询用户选择的目录以获取新的 files.When 选择了网络位置(同一网络上远程计算机上的文件夹),我向用户查询远程计算机的用户名和密码(有权访问该文件夹的用户),我对其进行验证并将其存储到注册表中,以便 service.This 方法正常工作。(s 服务作为本地计算机运行并使用模拟代码).

但是有些场景我不知道..

1.直接连接到network.Currently的无线硬盘/存储设备我使用模拟代码来提供用户credentials.In这种情况下驱动器可以作为本地机器直接访问服务 运行?

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

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

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

域用户怎么办?

  1. Wireless HDDs /Storage devices that are directly connected to the network.Currently i use impersonation code to supply user credentials.In such scenarios will the drive be directly accessible to the service running as localmachine?

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

  1. How to deal with Domain Users who has access to the Folder?

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

您可能还想查看 this answer 以获得更多模拟信息和示例代码。有一个很棒的库可以为您整理这些内容。