我通过使用 SmartPart 在我的 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" />
我能想到的主要原因有两个:
NTLM 双跳问题
这大概就是问题所在。你是:
Integrated Security=SSPI
or则为真Trusted_Connection=True
)那么你很可能面临双跳问题。这是因为 ASP.NET 只将您的 Windows 凭据传递给一台服务器,而不是两台。因此,它将从您的本地 PC 传输到 SharePoint 服务器,但不会传递到数据库服务器。
我知道避免这种情况的唯一方法(除非你想配置 Kerberos)是设置一个 SQL 帐户并在你的数据库连接字符串中使用它。
资源权限
Web 部件正在访问您的本地 PC 帐户无权访问的资源。
围绕您认为导致问题的 Web 部件部分执行某种日志记录,并将其缩小到特定的代码行。请注意,虽然这可能是数据库身份验证问题,但也可能是 Web 部件正在访问您的本地帐户无权访问的某些 CSS 文件或其他资源。