【问题标题】:Problems with Impersonated Service and Network Locations模拟服务和网络位置的问题
【发布时间】:2019-02-15 05:38:40
【问题描述】:

我有一个Windows服务,该服务轮询了用户选择的新文件的选定目录。选择网络位置(同一网络上的远程计算机上的文件夹),我查询用户的远程计算机的用户名和密码(有权访问该文件夹的用户),我对其进行验证并将其存储到服务的注册表中。这种方法工作正常。(服务作为本地机器运行并使用模拟代码)。 p>

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

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

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

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

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-12-20
      • 1970-01-01
      • 2011-08-15
      • 2019-03-10
      • 1970-01-01
      相关资源
      最近更新 更多