我有一个ASP.NET MVC应用程序,它访问数据库以检索数据,并在提交表单时更新另一个数据库。两个数据库和IIS位于不同的服务器上,用户将远程访问此应用程序,但所有内容都在我们的局域网内。用户通过组获得对数据库的访问权限。
这意味着我需要使用用户凭据(浏览ASP.NET应用程序的人)来访问两个数据库,但我一直无法让其正常工作。以下是我一直在尝试的方法:
部署应用程序后,在远程打开它时,它可以打开,但访问数据库的方法返回“Login failed for domain/servername”。
注意:当在 Visual Studio 上进行调试并在我部署它的服务器上本地访问时应用程序可以完美运行(启用模拟用户)。此外,我们使用智能卡登录,我不能向用户要求凭据。由于我们服务器的安全模型,我不能代表用户使用另一个 ID。
这意味着我需要使用用户凭据(浏览ASP.NET应用程序的人)来访问两个数据库,但我一直无法让其正常工作。以下是我一直在尝试的方法:
部署应用程序后,在远程打开它时,它可以打开,但访问数据库的方法返回“Login failed for domain/servername”。
- Enabled impersonation: "An ASP.NET setting has been detected that does not apply in Integrated managed pipeline mode."
- validateIntegratedModeConfiguration="false" - > DirectoryServicesCOMException (0x80072020): An operations error occurred.
Disabled impersonation and tried to add code to impersonate only on the section of code i access the DB using:
((System.Security.Principal.WindowsIdentity)User.Identity).Impersonate();
which resulted in Login failed for NT AUTHORITY/ANONYMOUS LOGON
我的连接字符串是
"Data Source=" + SERVER + ";Initial Catalog=" + DB + ";Integrated Security=True;Connection Timeout=30;Trusted_Connection=true"
注意:当在 Visual Studio 上进行调试并在我部署它的服务器上本地访问时应用程序可以完美运行(启用模拟用户)。此外,我们使用智能卡登录,我不能向用户要求凭据。由于我们服务器的安全模型,我不能代表用户使用另一个 ID。
impersonate='true'
和validateIntregrateMode='false'
,是吗? - jamesSampica