【问题标题】:Debug in VS as non-admin以非管理员身份在 VS 中调试
【发布时间】:2009-03-06 22:27:04
【问题描述】:
我正在做一些 WinForms 开发,运行 XP 和 VS 2005(我知道很古老)。我想确保我的应用程序可以在没有管理员权限的情况下运行,但是我懒得尝试以非管理员身份运行 VS,而且我不想登录和注销来测试我的应用程序。
有没有一种方法可以让我以非管理员身份进行调试?
我是否可以将一组代码访问安全属性添加到我的代码中,以强制我以与非管理员相同的权限集运行?
【问题讨论】:
标签:
.net
debugging
code-access-security
non-admin
【解决方案2】:
基于 Phil 的回答,您可以通过将启动项目设置为来自动化该过程:
启动外部程序:c:\windows\system32\runas.exe
使用命令行参数:/noprofile /user:{MachineName}\{UserName} {ApplicationName}.exe
不幸的是,我认为没有一种自动方法可以将进程附加到 VS 调试器(因为有安全警告),而是通过有条件地调用
#if (DEBUG)
System.Diagnostics.Debugger.Launch();
#endif
系统将提示您单击两次即可附加到调试器。
【解决方案3】:
通过更根本的改变来解决这个问题:
如果您启用您的计算机以允许并发远程桌面会话(Vista、XP,其他人使用 Google),然后启动到 127.0.0.2 的远程桌面会话,您可以在您的计算机上以完全不同的用户身份运行本地系统,让您可以做任何您想做的事情,而无需在用户之间切换。
对我来说,我通常以非管理用户身份运行,但每当我需要运行管理任务时,我都会以管理员身份启动远程桌面会话。但是,您也可以轻松地反其道而行之。