编辑
我一直在尝试配置ASP.Net站点以使用Windows身份验证模拟,并使用它来调用Sharepoint 2010 Web服务。
我在网站上启用了模拟和Windows身份验证,并以“经典”.net 4.0应用程序池标识提供。我显示登录的用户。当从服务器运行站点时,一切正常 - 用户被正确模拟。尝试了几个用户帐户(但所有本地管理员......)。这可以将文件上传到sharepoint,该文件将“Created by”“Modified by”记录为站点用户(而不是应用程序池标识)。这就是我想要的情况。
从客户端计算机运行时,它会失败。页面已加载,但在尝试访问未授权的401的Sharepoint列表服务时似乎失败。在调用list.asmx服务时,进一步的查询向我展示了Sharepoint网络日志的以下信息:
2012-01-12 22:42:52 10.197.104.208 POST /iain/Cesa/_vti_bin/Lists.asmx - 80 - 10.143.16.141 Mozilla / 4.0 +(兼容; + MSIE + 6.0; + MS + Web +服务+客户+协议+ 4.0.30319.239)401 0 0 13 2012-01-12 22:42:52 10.197.104.208 POST /iain/Cesa/_vti_bin/Lists.asmx - 80 - 10.143.16.141 Mozilla / 4.0 +(兼容; + MSIE + 6.0; + MS + Web +服务+客户端+ Protocol + 4.0.30319.239)401 1 2148074254 3 2012-01-12 22:42:52 10.197.104.208 POST /iain/Cesa/_vti_bin/Lists.asmx - 80 - 10.143.16.141 Mozilla / 4.0 +(兼容; + MSIE + 6.0; + MS + Web +服务+客户端+ Protocol + 4.0.30319.239)401 1 5 1
发件人:http://support.microsoft.com/kb/969060我知道:“win32状态”2148074254“(也定义为-2146893042 / 0x8009030E / SEC_E_NO_CREDENTIALS)表示”安全包中没有可用的凭据。“换句话说,客户端尚未发送任何凭据。“
这看起来我的网站没有将模拟的凭据传递给Sharepoint网站。有什么方法可以解决这个问题吗?因为它可以在服务器上工作,我相信它可以工作,但我最终想要找到解决方案。
答案 0 :(得分:0)
这是由使用NTLM而非Kerberos的Windows身份验证引起的(我认为它使用的是Kerberos ...)。
我正在考虑正确配置Kerberos,但这是一项艰巨的任务。在meatime中,我只是移动了网站,它现在托管在与其联系的Web服务相同的SharePoint Web前端。现在有双跳,不需要删除凭证,因此它可以工作:)