我试图从不同服务器上的.ASHX 内部通过 WCF 通过 Sharepoint Web Service 调用一个 Sharepoint Web Service 。 如果我在视觉工作室调试网络服务器内部运行, 我的代码是有效的, 但不在 IS 中运行。 工作服务器以各种认证模式( Kerberos, NTLM ) 运作, 而非工作服务器在任何模式中都无法工作 。 在这两种情况下, 我都会冒充同一个用户 。
使用NTLM,我在Wireshark记录了一个工作会议和非工作会议。在工作会议上,Wireshark分析NTLM的数据,并报告我所期望的DOMAIN和USER NAME NAME NAME NAMEE。在非工作会议上,它显示
DOMAIN: NULL
USER NAME: NULL
我已经在 IIS 中调试了, 冒名顶替绝对是在服务呼叫点工作 。 如果我检查 < code> WindowsIndentity. GetCrent () , 它就是我所期望的用户 。
如果我检查工作服务器和非工作服务器上的 WCF 服务代理,它们看起来是一样的 -- -- 有关客户证书的部分设置为两个版本用户名和密码的。
还有什么要检查的呢?为什么NTLM的数据会设置 DOMAIN 和 USER 命名为 NULL - 它从哪学来的?