【问题标题】:ASP.NET MVC + WCF + IIS: Windows authentication doesn't workASP.NET MVC + WCF + IIS:Windows 身份验证不起作用
【发布时间】:2013-11-28 01:46:12
【问题描述】:

我们有一个使用 Windows 身份验证的 ASP.NET MVC 编写的网站。 我们有一个 WCF 服务,用于连接到数据库并从我们的 MVC 站点引用该服务。站点和服务的 web.config 都启用了 Windows 身份验证并禁用了基本和匿名身份验证。

现在,问题是这样的:

如果我重新启动 IIS,然后在装有 IIS 的同一台计算机上打开浏览器,一切正常(即使从该计算机外部)。 如果我重新启动 IIS,然后在外部计算机中打开浏览器,WCF 服务将无法连接到数据库(即使是从本地计算机)。

因此,如果我们在尝试从外部访问站点之前不从主机打开该站点,它将无法正常工作。

我们正在使用模拟从网站调用服务。

对可能发生的事情有什么想法吗?

【问题讨论】:

    标签: asp.net wcf impersonation


    【解决方案1】:

    您的 WCF 服务正在模拟由 IE 用户传递给 IIS 的外部用户的用户。您想对我们服务的 IIS 的应用程序池进行硬编码,以使用具有网络服务权限的特定服务帐户

    它在内部工作,因为它使用您在 Windows 域上的身份(它在您的 ie 安全设置中),但在外部这不起作用。

    【讨论】:

    • 问题是,它确实在外部工作,只要您第一次访问该站点时您在内部访问它。之后它将继续在外部工作。
    • 它正在缓存内部凭据,答案是正确的,为您的应用程序池配置一个具有适当权限的服务帐户
    • 好的,但是我用于 AppPool 的帐户是“网络服务”,不应该这样工作吗?
    • 在您的网站(不是应用程序池)的基本设置中,您是否将安全设置为应用程序通过?您也可以尝试在那里指定一个特定帐户,不要忘记
    猜你喜欢
    • 2012-04-29
    • 2018-05-03
    • 1970-01-01
    • 1970-01-01
    • 2023-04-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多