将用户标识发送到SQL以进行登录

时间:2016-02-09 08:22:12

标签: c# sql-server iis-7 connection-string application-pool

我们开发了一个 Web应用程序的产品。在IIS中配置它时,我们禁用除 Windows身份验证之外的所有身份验证模式(应用程序仅适用于Windows身份验证)。

我们创建一个服务帐户,并在所有服务器和数据库服务器上为该帐户提供管理员访问权限。

我们使用该服务帐户的用户名和密码在backgroundViewController.providesPresentationContextTransitionStyle = YES; backgroundController.definesPresentationContext = YES; [overlayViewController setModalPresentationStyle:UIModalPresentationOverCurrentContext]; 中配置连接字符串。到目前为止,一切都很好。

我们收到了一项新要求,即不会创建任何服务帐户,并且会授予个别用户数据库访问权限。我们必须以这样的方式配置我们的应用程序,即使用Windows凭据访问应用程序传递给SQL Server。此更改的原因:我们可以记录访问数据库的用户。

我在连接字符串中设置web.config并尝试使用不同的应用程序池标识但无效。

如果需要相同的代码来实现功能,我们甚至准备更改代码。

有人可以帮助我,我错过了什么,或者如何实现?如果需要更多信息,请告诉我,我很乐意提供相同的信息。

应用服务器和数据库服务器位于同一个域和网络上但不同的计算机上。访问应用程序的用户将位于同一域和网络上。这是一个基于Intranet的应用程序。

2 个答案:

答案 0 :(得分:1)

您需要启用和配置约束委派。请遵循以下文档:How to Implement Kerberos Constrained Delegation with SQL Server。您的应用程序池需要配置为模拟,请参阅Using IIS Authentication with ASP.NET Impersonation

答案 1 :(得分:0)

此外,这将是一个跃点场景,因此您必须为IIS服务器启用委派,如果您打算传递用户凭据,则还需要为用户帐户启用委派。您可以使用工具delegconfig对此进行故障排除。