这是我的连接字符串,Web 服务(托管在 IIS 中,在 ApplicationPoolIdentity 下运行)用于连接到数据库
<add name="AdventureWorksEntities"connectionString="metadata=.\AdventureWorks.csdl|.\AdventureWorks.ssdl|.\AdventureWorks.msl;
provider=System.Data.SqlClient;provider connection string='Data Source=TestMachine;Initial Catalog=AdventureWorks;
Integrated Security=True;Connection Timeout=60;multipleactiveresultsets=true'" providerName="System.Data.EntityClient" />
当我尝试访问该站点时,出现异常:用户 MyDomain\TestMachine$ 登录失败。
为什么 IIS 尝试使用 TestMachine 连接而不是我的用户帐户(例如 MyDomain\TestUser)?我相信的原因可能是因为它托管在使用机器凭据的 ApplicationPoolIdentity 下。
如何指定它以使用发出请求的用户的上下文,而不必在自定义身份下运行应用程序(即我希望它继续在 ApplicationPoolIdentity 下运行)?
如果我<identity impersonate = true/>'
在 web.config 文件中进行设置,那么我可以从 IIS 服务器计算机本地访问该站点,并且可以访问数据库,但是远程访问该站点会失败。我的 Web 服务正在使用 Windows 身份验证。对此有什么想法吗?