我有一个C#Web应用程序(在某些配置中)允许用户输入Windows凭据,然后使用该凭据对远程服务进行身份验证。为此,我们目前调用LogonUser并使用生成的token创建WindowsIdentity,然后我们模拟它。它一直运行良好,没有真正的问题。最近我在阅读有关Web身份验证的内容,并阅读了IIS使用LsaLogonUser进行基本身份验证的内容创建模拟上下文。我有点理解两者之间的区别,听起来我们应该使用LsaLogonUser,但我讨厌为了不明确的好处而做出我不理解的更改。另一方面,从事IIS工作的人比我更了解WindowsAPI。那么:哪个函数更适合Web应用程序?你会说使
使用WTSGetActiveConsoleSessionId和WTSQueryUserToken,我知道作为SYSTEM运行的服务有可能达到launchanapplicationontothecurrentdesktop不使用密码。是否启动CreateProcessAsUser而无需LogonUser的密码,前提是启动该进程的程序具有足够的权限?编辑1:情况与thisinstance有点相似,但我需要能够以用户身份启动进程,而不管他们当时是否登录到系统。 最佳答案 有可能使用未记录的NtCreateToken函数;我想thisexa
我们正在开发具有内部用户帐户系统的应用程序,但希望能够使用来自ActiveDirectory和/或Windows帐户的凭据。为此,我们将用户SID存储在应用程序用户表的一个字段中。我们的登录机制功能如下:提示用户输入域、登录名、密码调用LogonUser(logon,domain,password,logon_type,logon_provider,&hToken)如果成功,从hToken获取UserSID关闭hToken在我们的应用程序数据库中搜索具有给定SID的用户;如果找到,我们将被视为登录到该帐户。出现的问题是:我们一直使用LOGON32_LOGON_NETWORK作为logo
我已经阅读了StackOverflow上关于CreateProcessAsUser的所有帖子,但很少有已解决的问题,所以我不会在这个问题上屏住呼吸。但似乎我肯定遗漏了一些东西,所以这可能很容易。目标操作系统是WindowsXP。我有一个作为“本地系统”运行的服务,我想从中创建一个作为不同用户运行的进程。对于该用户,我有用户名和密码,因此LogonUser运行良好,我为该用户获取了一个token(在本例中为管理员帐户)。然后我尝试使用该token调用CreateProcessAsUser,但它失败了,因为该token不附带SeAssignPrimaryTokenPrivilege-但是,
ASP.NET:ImpersonateagainstadomainonVMWare这个问题是我问的,但是答案没有提供_token是如何派生的细节。它似乎只使用WindowsIdentity.GetCurrent().Token所以没有模拟发生。CanIimpersonateauseronadifferentActiveDirectorydomainin.NET?下一个问题的答案相互矛盾,接受的答案带有评论“我开始怀疑我的问题出在其他地方。”没有帮助。LogonUserworksonlyformydomain下一个问题似乎暗示这是不可能的,但它涉及2个域,所以我不确定它是否相关。我真正的