我有一个Windows服务,该服务对新文件进行了调查。选择网络位置(同一网络上的远程计算机上的文件夹),我会查询用户对远程计算机的用户名和密码(有权访问该文件夹的用户),我对其进行验证并将其存储到服务的注册表中。这种方法工作正常。(服务服务作为本地计算机运行并使用模拟代码)。 p>
但是有些场景我没有意识到..
1. 直接连接到网络的无线硬盘驱动器/存储设备。目前我使用模拟代码来提供用户凭据。在这种情况下,作为本地机器运行的服务可以直接访问驱动器?
2.如何处理有权访问该文件夹的域用户?
我正在使用以下代码来模拟用户
https://stackoverflow.com/a/9213965/848968
UserImpersonation impersonator = new UserImpersonation();
impersonator.impersonateUser("username", "", "password"); //No Domain is required
域用户怎么办?
最佳答案
- 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 服务无法使用这些驱动器。
- How to deal with Domain Users who has access to the Folder?
impersonator.impersonateUser("用户名", "域", "密码");
您可能还想查看 this answer有关更多模拟信息和示例代码。有一个很棒的库可以为您整理这些内容。
关于c# - 模拟服务和网络位置的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52263669/