我有一个连接到 windows2008-r2 域的 windows7。
每次我尝试 SSPI “Negociate” (C++) 时,我都会退回到 NTLM。
我不明白为什么... DC 上的 DNS 没问题。
有什么事我不做??
如果我运行 klist,我可以看到一切正常,一切似乎都很好(我猜)
更新
好的,现在我才刚刚开始理解(至少)。
我曾经将 SPN "" 提供给InitializeSecurityContext
它,在这种情况下,它直接回退到 NTLM。
现在我尝试了,总是在我的客户端上,这个:
wchar_t szSPN[256]={0};
ULONG cchSPN = sizeof szSPN / sizeof *szSPN;
GetUserNameEx(NameDnsDomain, szSPN, &cchSPN);
...
InitializeSecurityContext( hCred, NULL, szPSN, ...)
这给了我错误 0x8009030c
其他奇怪的东西: 如果我用“管理员”设置 szSPN,现在它可以与 kerberos 一起使用!但是如果我用 JOE 设置 szSPN,它会失败......(假设我在 DC 上创建了一个新用户 JOE)。
哇,我不明白这是怎么回事……!?