在模仿用户时,如何检测kerberos身份验证延迟发生的位置?

时间:2011-03-22 20:04:40

标签: .net authentication kerberos

在模拟另一个域用户进行文件系统访问的应用程序中,从调用WindowsIdentity.Impersonate到实际完成该用户的身份验证时,我们遇到了2秒的延迟。这只能在生产机器(Windows Server 2008)上重现,而不能在我们的开发机器(Windows 7)上重现。我们通过使用Wireshark分析网络流量来验证延迟发生之前 Kerberos身份验证 - 身份验证只需要一小部分时间,而事先发生延迟。

有哪些工具可以帮助确定此延迟的确切位置/原因?谢谢!

突破:这只发生在生产计算机上运行的64位进程中(针对x86编译的相同代码库运行时没有生产延迟)。但为什么?更多研究......

(附加信息将在相关时添加)。

1 个答案:

答案 0 :(得分:1)

如果你还没有使用它们,你几乎肯定会受益于Windows SysInternals工具套件中的一些工具。 Process Monitor可能是一个好的开始。基本思想是跟踪Windows和您的应用程序正在做什么,看看会发生什么。

您是否已将调试程序附加到流程中?

另一件事是确定生产和开发机器之间的其他差异。是否有不同版本的库在使用?配置怎么样?如果您有生产服务器的备份,可以在那里重新创建问题吗?