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

时间:2012-05-13 05:03:13

标签: asp.net authentication integrated

我在IIS Web服务器中托管了一个ASP.NEt页面。此页面只创建一个连接字符串并打开一个连接。我想为数据库连接传递客户端标识,因为我的数据库存储过程使用current_user来执行各种任务(典型的客户端 - 服务器拱)。

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

问题:在deployement服务器上,上述身份验证发生在服务器计算机帐户上,因此登录失败。我想要使​​用客户端凭据进行连接,以便SP中current_user的值始终是打开页面的用户。

请帮助我,如果有任何其他问题,请告诉我。提前谢谢。

1 个答案:

答案 0 :(得分:1)

在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。