我正在调试一个程序并想使用windbg在Secur32!ImpersonateSecurityContext设置一个断点。我的高级Windows调试一书告诉我,我应该能够使用此命令bpSecur32!ImpersonateSecurityContext设置断点。不幸的是,它对我来说失败了。我确实检查了我的符号路径,我相信它是正确的。如果我在windbg中运行xSecur32!*,我也会得到一些符号。000007fe`fd481f28Secur32!LsaQueryInformationPolicy=000007fe`fd481b18Secur32!_delayLoadHelper2=0
我在WindowsServer2012上运行WindowsService,它需要模拟域管理员用户(该用户也被添加到机器上的本地管理员组)。UAC已在系统上启用,并且使用登录类型为LOGON32_LOGON_INTERACTIVE的凭据调用LogonUser,似乎返回受限token而不是完整token。这导致我尝试执行的管理任务失败。在这种情况下调用LogonUser的正确方法是什么,以便返回完整token而不是受限token?PS:我在这里遇到了一个相关问题HowcanIgetelevatedpermissions(UAC)viaimpersonationunderanon-inter
是的,我可以用谷歌搜索这个,但我有点懒。我需要远程控制另一台机器上的Windows服务。ServiceController类是否允许我这样做?有什么限制?我可以远程启动/停止/更改“运行方式”详细信息,即更改即将过期的密码吗?我将尝试为工作中的用户提供一个ASP.Net网站仪表板,以控制在他们自己的帐户下在本地计算机上运行的多项服务(他们都是他们计算机上的本地管理员)。这与其他功能集成在一起,因此我不考虑创建可以在本地运行的可分发文件。将使用Windows身份验证并模拟用户进行更改。我可能会遇到什么问题?干杯 最佳答案 varsc=
我需要在VMWare计算机上运行的ASP.NET应用程序中将自己模拟为域用户。由于VMWare计算机本身不在域中,因此ASP.NET无法解析用户token(在web.config中指定)。有办法吗?提前致谢,彼得 最佳答案 我一直在使用我编写的这个类,它的效果非常好!usingSystem;usingSystem.Security.Principal;//////Changesthesecuritycontexttheapplicationrunsunder.///publicclassImpersonateHelper:IDisp
我用C#编写了一个Windows服务,我必须对SQLServer使用Windows身份验证。所以我在SQL连接字符串中使用了TrustedConnection。设置如下:Windows服务在其中托管了WCF。Windows服务使用本地服务帐户,该帐户是该应用程序服务器上的管理员...因为WCF必须注册uri。所以我模拟另一个将使用Windows身份验证到SQLServer的帐户...我没有SQL帐户。所以问题是当我在模拟后尝试进行身份验证时...它正在尝试使用服务所在的帐户即使我检查了Windows身份并且它是正确的并且是模拟帐户,它仍在运行。为什么它使用服务帐户?另一个问题是,WCF
有谁知道通过LogonUserWindowsAPI方法创建的Windowstoken的过期时间是多少?我打算通过轮询token是否每10分钟更改一次来自己测试它,但也许询问过期时间是多少以及我在哪里可以找到描述它的文档会更容易。模拟token的默认过期时间是多少?可以在ActiveDirectory的某处配置吗?谢谢,广告 最佳答案 标准登录token的到期时间是无限的(0),因为目前不支持它。看这里:http://msdn.microsoft.com/en-us/library/windows/desktop/aa379632%2
我正在设计一个在Win2000、XP和Vista上以LocalSystem帐户运行的服务。它将需要访问用户注册表配置单元,有时需要很长时间,无论是在用户登录时,还是在用户未登录时(如果配置文件是本地的。如果配置文件是漫游且未加载,我不会尝试加载它。)如果用户已登录,我可以通过各种方式(例如,从其资源管理器进程,或通过从服务控制管理器接收登录事件)获取用户访问token,然后使用ImpersonateLoggedOnUser和RegOpenCurrentUser访问用户的配置单元。但是,如果用户在我模拟并打开他的配置单元时从开始菜单中选择注销,会有什么影响?是否会阻止注销?我的模拟会被终
我的应用程序通常由用户A作为用户B使用System.Process.Start("app.exe","UserB","secret")启动。现在,我希望app.exe产生额外的子进程,但作为UserA,没有UserB拥有的额外权限。有没有办法在不询问UserA密码的情况下完成此操作?我试过在没有凭据的情况下使用System.Process.Start以及调用cmd/Cchild.exe,但这两种方法都以UserB身份启动child.exe。我正在考虑一种方法让当前shell为我启动子进程,但我还没有找到。 最佳答案 最简单的解决方案
我一直在尝试更新与CrystalReports交互的WCF项目,以使其通过Windows身份验证连接到MSSQLServer。它是一个WCF项目,但作为Windows服务而不是通过IIS运行。我正在使用SimpleImpersonation执行模拟步骤。本质上,如果在传入的SOAP请求中提供了正确的值(包括IntegratedSecurity=true),它会模拟另一个用户并尝试使用IntegratedSecurity登录。我的代码看起来像这样:using(Impersonation.LogonUser(domain,username,password,LogonType.NewCre
我有一个在WindowsXP及以下系统上作为LocalSystem运行的进程。我正在尝试找到一种方法让它启动另一个进程来模拟另一个用户而不必提供用户密码。原则上这应该是可能的,因为LocalSystem具有“作为操作系统的一部分”的特权。但是我找不到正确的API。谁能告诉我该怎么做:使用API,或者来自批处理文件? 最佳答案 您可以先通过WTSQueryUserToken获取用户的token来完成此操作,然后调用CreateProcessAsUser开始这个过程。请注意,您只能为当前登录系统的用户执行此操作。