我在IIS Web服务器中托管了一个ASP.NEt页面。此页面只创建一个连接字符串并打开一个连接。我想为数据库连接传递客户端标识,因为我的数据库存储过程使用current_user来执行各种任务(典型的客户端 - 服务器拱)。
在开发环境中:当我从我的开发机器上的visual studio运行此页面时,一切正常,数据库连接以我的Windows身份打开。而存储过程中current_user的值也是我自己。在连接字符串中,我可以看到自己被认证。
问题:在deployement服务器上,上述身份验证发生在服务器计算机帐户上,因此登录失败。我想要使用客户端凭据进行连接,以便SP中current_user的值始终是打开页面的用户。
请帮助我,如果有任何其他问题,请告诉我。提前谢谢。
答案 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。