1

我正在做一些 WinForms 开发,运行 XP 和 VS 2005(我知道很古老)。我想确保我的应用程序可以在没有管理员权限的情况下运行,但是我懒得尝试以非管理员身份运行 VS,而且我不想登录和退出来测试我的应用程序。

有没有一种方法可以让我以非管理员身份进行调试?

是否有一组代码访问安全属性可以添加到我的代码中,以强制我以与非管理员相同的权限集运行?

4

3 回答 3

2

从您当前登录的桌面会话中以另一个用户身份运行 VS。请参阅在 Windows 中运行程序时如何启用和使用“运行方式”命令。这意味着您不必登录和退出。

我建议您通过 RunAs 以另一个用户身份运行您的目标应用程序,然后通过 Visual Studio 中的 Debug > Attach To Process... 菜单项将 VS 调试器附加到进程(如果需要)。

于 2009-03-06T22:32:51.560 回答
0

基于 Phil 的回答,您可以通过将启动项目设置为:

启动外部程序:c:\windows\system32\runas.exe

使用命令行参数:/noprofile /user:{MachineName}\{UserName} {ApplicationName}.exe

不幸的是,我认为没有一种自动方法可以将进程附加到 VS 调试器(因为有安全警告),而是有条件地调用

#if (DEBUG) 
    System.Diagnostics.Debugger.Launch();
#endif

系统将提示您单击两次以附加到调试器。

于 2009-03-11T20:39:35.317 回答
0

用更根本的变化来解决这个问题:

如果您让您的计算机允许并发远程桌面会话(VistaXP,其他人使用 Google),然后启动到 127.0.0.2 的远程桌面会话,您可以在本地系统上以完全不同的用户身份运行,使您能够无需在用户之间切换即可满足您的任何需求。

对我来说,我通常以非管理用户身份运行,但每当我需要运行管理任务时,我都会以管理员身份启动远程桌面会话。但是,您也可以轻松地反其道而行之。

于 2010-08-11T19:39:17.110 回答