【问题标题】:can i possible to execute a single method as current user privileges in the application that running as administrator?我可以在以管理员身份运行的应用程序中以当前用户权限执行单个方法吗?
【发布时间】:2014-11-05 17:38:16
【问题描述】:

在我的应用程序中,我需要所有逻辑驱动器,包括映射的网络驱动器。无需以管理员身份运行即可正常工作。但我的应用程序默认以管理员身份运行,我无法映射网络驱动器。我知道为什么会这样。

我正在使用 DriveInfo.GetDrives() 收集驱动器。

我的问题是, 我可以在以管理员身份运行的应用程序中作为当前用户权限执行单个方法(收集所有映射的驱动器)吗?

或任何其他方式来收集所有网络驱动器。

提前致谢。

【问题讨论】:

  • 您如何知道以哪个用户身份执行该方法?不同的用户可能有不同的映射驱动器。如果应用程序在没有管理员权限的情况下运行良好,那么无论如何您都应该以这种方式运行它。不鼓励以管理员身份运行。
  • 嘿,克里斯,在这个 wpf 应用程序中,任何用户都可以使用这个页面,所以我们必须显示当前登录用户映射的驱动器

标签: c# .net network-programming mapped-drive


【解决方案1】:

您可以在没有管理员权限的情况下创建另一个应用程序,然后从您的主程序运行它。

Process.Start("myNormalApp.exe");

在“myNormalApp.exe”中放置驱动器映射代码。然后,您可以将映射的驱动器写入文件并在主应用程序中打开该文件。这有点复杂,但我认为这是唯一的方法。让我说,但是我无法想象您为什么说提升的应用程序无法访问网络驱动器(对我来说似乎有点奇怪)

代码未经测试,但应该可以工作。

希望这会有所帮助,

FWhite

【讨论】:

  • 感谢 PWhite,但这应该不是正确的方法。我正在寻找来自同一应用程序的映射用户驱动器。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-05-30
  • 1970-01-01
  • 1970-01-01
  • 2011-06-10
  • 1970-01-01
  • 2020-03-31
  • 2011-12-29
相关资源
最近更新 更多