SharePoint 中使用 SQL Server 数据源时出现 403 FORBIDDEN 错误

SharePoint 中使用 SQL Server 数据源时出现 403 FORBIDDEN 错误

我已通过使用 SmartParts 在 SharePoint 网站上创建了一些自定义 WebPart。我的自定义 Web 部件查看 2 个不同的 SQL Server 数据源。

  • 当我从 Visual Studio 2008 运行我的代码时,它 100% 有效
  • 当我在 SharePoint 页面上部署代码时,从服务器运行它时,它 100% 正常工作

但是当我从本地 PC 访问 SharePoint 网站并点击该自定义 Webpart 时,我收到错误“403 FORBIDDEN”。现在我知道这是一个安全问题,但问题出在哪里?为什么?为什么它在服务器上可以工作,而在另一台 PC 上却不行?

任何帮助都将非常有帮助!!

编辑:

我的 Web.config 中的 ConnectionString

<add name="DSN" connectionString="Data Source=TCP:us-support.a1.mydomain.com;
   Initial Catalog=myDB;Integrated Security=false;User ID=myID;Password=myPassword"
   providerName="System.Data.SqlClient" />

答案1

我能想到的主要原因有两个:

NTLM 双跳问题

这可能是问题所在。您是否:

  • 您的网络中使用 Windows 身份验证 (NTLM) 而不是 Kerberos?
  • 使用模拟连接到数据库?(如果数据库连接字符串包含Integrated Security=SSPI或 则为True Trusted_Connection=True

那么你可能正面临双跳问题。这是因为 ASP.NET 仅将您的 Windows 凭据传递给一台服务器,而不是两台。因此它将从您的本地 PC 传递到 SharePoint 服务器,但不会传递到数据库服务器。

我所知道的避免这种情况的唯一方法(除非您想配置 Kerberos)是设置一个 SQL 帐户并在数据库的连接字符串中使用它。

资源权限

Web 部件正在访问您的本地 PC 帐户无权访问的资源。

针对您认为导致问题的 Web 部件部分执行某种日志记录,并将问题范围缩小到特定的代码行。请注意,虽然这可能是数据库身份验证问题,但也可能是 Web 部件正在访问您的本地帐户无权访问的某些 CSS 文件或其他资源。

相关内容