我使用以下命令处理Kerberos登录基础结构(单点登录)
服务器程序用C ++编写。
在主体(客户端)和服务主体(服务器)之间创建上下文没有问题。 我还将我的客户端凭据委托给服务器,因为我需要使用客户端用户凭据在服务器上创建进程。
这是我的问题,在服务器端,我有一个SSPI上下文,我需要使用Windows类型pHandle
的CreateProcessAsUser。
我不知道如何使用我的SSPI凭据在我的服务器上创建作为客户端用户的进程。
我看看LsaLogonUser,它看起来像我想要的那样(从kerberos用户凭据创建一个句柄)但我的问题是一样的,我不知道如何使用这个LsaLogonUser的SSPI令牌。
先谢谢你的帮助
答案 0 :(得分:0)
我刚刚发布了一个与您正在做的事情相关的问题。我正在使用会话0 Windows服务将应用程序启动到会话1.我使用的代码(并询问)包括in that post,并且运行良好,但会话1中用户通常可用的路径无法访问当这样开始的时候。无论如何,即使我对这段代码有一些疑问,我希望它可以让你走上正确的道路。
Ryyker
答案 1 :(得分:0)
我终于找到了解决问题的方法。
最好的方法是:
有效;)
答案 2 :(得分:0)
尽管已经很晚了,但是您可以通过执行以下操作获得令牌:
HANDLE tempHandle;
if (!QuerySecurityContextToken(hctxt, &tempHandle))
{
MyDbg("Could not obtain token for user");
}