ASP.Net 传递客户端标识,以便在集成身份验证模式下创建数据库连接字符串



我有一个 ASP.NEt 页面托管在IIS Web服务器中。此页仅创建一个连接字符串并打开一个连接。我想传递数据库连接的客户端身份,因为我的数据库存储进程正在使用current_user来完成实际任务(典型的客户端-服务器架构)。

在开发环境中:当我在我的开发机器上从 Visual Studio 运行此页面时,一切正常,数据库连接使用我的 Windows 标识打开。而存储过程中current_user的价值也是我自己。在连接字符串中,我可以看到自己正在进行身份验证。

问题:在部署服务器上,对服务器计算机帐户进行上述身份验证,因此登录失败。我以某种方式希望使用客户端凭据建立连接,以便 SP 中current_user的值始终是打开页面的用户。

帮助我解决这个问题,如果有任何进一步的问题,请告诉我。提前谢谢。

在 web.config 上使用模拟将解决此问题。

将以下行添加到您的 web.config 文件

  <identity impersonate="true">

下面的链接解释了模拟的详细信息以及它如何影响您的 Web 应用程序http://msdn.microsoft.com/en-us/library/aa292118(v=vs.71).aspx

在 Visual Studio 中运行应用程序时,它使用 IIS 以外的 Web 服务器来运行 Web 应用程序。此 Web 服务器将始终使用登录用户的身份。将应用程序部署到 IIS 时,当模拟设置为 false 时,应用程序池标识将用于 SQL Server 访问。模拟的默认值为 false。

最新更新