【发布时间】:2014-12-04 04:25:48
【问题描述】:
我有一个 windows7 连接到 windows2008-r2 域。
每次我尝试 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)。
哇,我不明白这是怎么回事……!?
【问题讨论】:
-
您是否尝试过选择 Kerberos 包并检查
SECURITY_STATUS?
标签: windows active-directory kerberos ntlm sspi