-6ren"> -我想使用集成身份验证从 Web 部件访问 SQL 数据库。它应该使用 IIS 应用程序池标识。 默认情况下你会得到错误: System.Data.SqlClient.SqlException: Log-6ren">
gpt4 book ai didi

SharePoint 和

转载 作者:行者123 更新时间:2023-12-01 10:15:37 25 4
gpt4 key购买 nike

我想使用集成身份验证从 Web 部件访问 SQL 数据库。它应该使用 IIS 应用程序池标识。

默认情况下你会得到错误:

System.Data.SqlClient.SqlException: Login failed for user 'SERVER\IUSR_VIRTUALMACHINE'.

因为在 web.config 中模拟设置为 true:

<identity impersonate="true" />

我可以将其设置为 false,数据库代码将正常工作。匿名访问的网站也可以使用。然而,任何使用身份验证的 SharePoint 站点都会失败,因此这并不是真正的解决方案。

要解决这个问题,我必须封装我所有的数据库访问代码以使用提升的权限运行,SharePoint 是如何在内部做到这一点的?不知何故,这似乎不是最高效的解决方案。这仍然是可行的方法,只需使用 SQL 安全性从 SharePoint 自定义 Web 部件访问数据库吗?

最佳答案

<identity /><authentication /> web.config 文件中的元素将共同确定使用集成身份验证时用于连接到 SQL Server 的帐户。

<authentication mode="Windows" />已配置,您将推迟到 IIS 对用户进行身份验证。我猜你的 web.config 包含:

<authentication mode="Windows" />
<identity impersonate="true" />

并且 IIS 配置为允许匿名用户。设置<identity impersonate="true" />导致 IIS 将 IIS 匿名访问帐户的身份传递给 SQL Server。

正如 Lars 指出的那样,使用 SPSecurity.RunWithElevatedPrivileges 将实现您想要的。我不相信你会看到对性能有任何明显的影响,但你可以测试一下:-)

关于SharePoint 和 <identity impersonate ="false"/>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1061857/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com