【问题标题】:Is there a way to determine which functions in a Visual Studio C# solution require Administrator Privileges有没有办法确定 Visual Studio C# 解决方案中的哪些功能需要管理员权限
【发布时间】:2016-02-08 18:51:37
【问题描述】:

我最近的任务是找出一种方法来消除 c# 应用程序的提升权限要求。

我对 C# 不是很熟悉,但我确实可以访问源代码(一个解决方案中的多个项目)并且我使用的是 VS 2013 Professional。

到目前为止,我一直在手动查看代码并参考在线文档,以尝试确定提升的权限要求来自何处。

有没有办法使用 Visual Studio(或其他软件)来确定哪些函数调用强制要求管理员权限?

【问题讨论】:

  • 有些类会立即被怀疑——例如 System.IO.File。问题是你仍然不知道这些调用是否需要提升的权限,而不知道它在文件系统上的位置。
  • @Pedro 是的,这是有道理的。我希望避免不得不追踪每个函数调用并确定它可能需要手动访问什么,但我担心(你的评论让我朝着这个方向走得更远)这就是领先的地方。
  • 虽然我仍然非常想知道 VS 中是否存在这样的函数来确定代码的哪些部分可能需要提升,但我相信我已经找到了我的案例的罪魁祸首。我使用的代码是建立在ServiceStack 之上的。我发现另一个answer here 这似乎表明正在使用的ServiceStack 部分需要管理员权限才能运行。

标签: c# visual-studio privileges


【解决方案1】:

不是自动的,但可能有一些方法可以快速缩小范围。

首先,如果您有良好的测试套件,您可以以没有管理员权限的用户身份运行这些套件,并查看哪些测试套件失败或提示输入 UAC。这应该允许您快速缩小代码部分(顺便说一句,我是重新利用测试套件的忠实粉丝)。那些失败的也可以很快得到纠正。

另一种选择是手动测试,同样由没有管理员权限的用户进行。然后可以在有问题的地方查看代码并删除问题,

如果没有自动查找问题的方法,您应该准备好进行一些签核后的错误修复,但是(所以也许有一个实验阶段)可能是好的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多