[英]How to run application as another user from within an application
我有一个奇怪的要求-我有很多运行我的应用程序的用户,我需要让该应用程序知道谁在运行它。 这根本不是问题,我可以很好地捕获此信息。
诀窍在于,应用程序需要访问受限制的网络共享-运行该应用程序的所有用户都没有权限在该处执行任何操作。 那里有很多工作-读取文件,写入文件,并且由于这是WPF应用程序,因此数据绑定到该受限区域中的文件URI。 例如,设置图像的ImageSource。 在应用程序的所有不同部分,我都需要不受限制地访问该数据。
我一直在研究WindowsIdentity.Impersonation的内容,但它似乎更倾向于在较小的上下文范围内模拟用户,然后结束模拟。.可以,但不方便。
有没有办法让我的应用启动,然后在应用范围内模拟用户? 因此,我可以使用正确的权限集来完成所有工作。
一种可行的方法是在用户计算机上设置Windows服务,该服务可以使用适当的Active Directory帐户特权连接到服务器。 您的应用程序将与该Windows服务通信,而不是直接与服务器通信。 尽管这可能确实可以实现您想要的功能,但实现可能比您想弄清楚的要复杂得多。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.