ASP.NET MVC:以两种不同的身份运行

时间:2018-06-22 21:28:57

标签: asp.net sql-server asp.net-mvc iis impersonation

我正在试验ASP.NET,它在IIS上托管了一个简单的MVC应用程序。 在这个项目中,我需要与两个不同的来源集成:

  1. 一个简单的SQL数据库;

  2. 通过HTTP已经存在的WCF Web服务;

用户可以使用Windows身份验证凭据在网站中进行身份验证。这按预期工作。

要查询数据库,我使用在应用程序池中定义的网络用户凭据。这也很好。

现在,我的目标是在模拟登录用户的同时使用Web服务。但是,当我在IIS中激活ASP.NET Impersonate身份验证方法时,由于使用了登录用户身份而不是应用程序池的身份,数据库连接丢失了。另一方面,停用ASP.NET模拟,由于使用了应用程序池的身份,因此无法针对Web服务器进行身份验证。

我确实尝试停用IIS中的ASP.NET模拟,并使用HTTPContext用户ID模拟代码中的Web服务请求。这会导致错误,指出客户端标头使用Negotiate,而服务器使用Negotiate和NTLM。

更改服务客户端绑定以使用NTLM不起作用。

是否可以通过两种服务进行身份验证,一种使用应用程序池的身份进行身份验证,另一种使用用户登录(HTTPContext)身份进行身份验证?

0 个答案:

没有答案