0

我有一台托管 Sharepoint 2010 的服务器。我还有另一台托管 SQL Server 2008 R2 的服务器。SharePoint 基于 Kerberos/声明。

在我的 SharePoint 上,我安装了一个自定义的 Web 部件,它使用标准连接字符串 ( Data Source=myServerAddress;Initial Catalog=myDataBase;Integrated Security=SSPI;) 连接到 SQL Server 机器。

问题是当 webpart 尝试连接到 sql server 时,我收到以下消息:

Login failed for user 'NT AUTHORITY\ANONYMOUS LOGON'

我们做了什么:

  • 验证所有 spn/delegation/trusts 的东西 - 一切似乎都很好。
  • 尝试通过 UDL 文件直接从 sharepoint 机器连接到 sql server,它可以工作。
  • 尝试将 webpart 作为单机服务器上的独立 ASPX 页面来证明代码应该可以工作,并且可以工作。
  • Wireshark -> 当 ANONYMUS LOGON 尝试连接到 sql server(很明显)时,我们可以看到 KDC_ERR_S_PRINCIPAL_UNKNOWN。
  • SharePoint 开发人员仪表板向我们显示了我们当前的用户名,它不是 ANONYMUS。
  • webpart 中的跟踪显示了两件事:HTTPCONTEXT 设置为我当前的用户,Thread.Current 也是如此。
  • 使用 SQL Profiler,我们可以看到请求来自 ANONYMUS
  • 我们试图从另一个定制的 webpart 访问另一台服务器上的 web 服务,但由于同样的原因 (ANONYMUS) 失败了。

我们缺少什么?问题确实似乎是 SharePoint 无法将当前用户凭据发送到另一台服务器(sql 与否)。

4

1 回答 1

0

您是否验证过 Kerberos 正在工作?

下载 Kerberos 委派疑难解答

http://www.microsoft.com/DOWNLOADS/details.aspx?familyid=99B0F94F-E28A-4726-BFFE-2F64AE2F59A2&displaylang=en

于 2011-08-30T15:15:05.543 回答