IdentityServer4&Windows身份验证

问题描述:

我一直在追逐这个问题一段时间,现在我无法了解它的底部。我读过这里的其他解决方案(https://identityserver4.readthedocs.iohttps://github.com/IdentityServer/IdentityServer4.Quickstart.UI),但它仍然无法正常工作,所以我试图将其降低到绝对的基本水平。这不是我所面临的实际问题,而是产生了非常相同的结果。即我无法使Windows身份验证正常工作。IdentityServer4&Windows身份验证

  1. 我克隆https://github.com/IdentityServer/IdentityServer4.Samples
  2. 我修改Quickstarts/7_JavaScriptClient/src/QuickstartIdentityServer/Quickstart/Account/AccountController.cs使WindowsAuthenticationEnabledtrue
  3. 我然后转到http://localhost:5000/account/login并尝试使用Windows外部供应商,我得到401

唯一的区别这个简单的例子,以及我在我的实际系统上看到的是,我在我的真实网站上获得凭据的挑战。

调试代码我从来没有看到if(HttpContext.User is WindowsPrincipal)成功,因为它始终是ClaimsPrincipal

有人可以向我解释我做错了什么吗?

您是否在IIS网站上启用了Windows身份验证功能?这需要为您的WindowsPrincipal分配启用。请注意,Windows身份验证仅适用于在IIS或IIS Express后运行。

+0

是的,Windows身份验证在IIS上启用。我已经用UseIISIntegration运行Kestrel,所以我猜IIS是作为这个的反向代理。 –

+0

IIS或IIS Express?为网站或服务器启用?我问,因为HttpContext.User是WindowsPrincipal工作正常,所以这很可能是一个环境问题。 –

+1

哇...我为网站和应用程序启用了Windows身份验证,但是当我为服务器启用它时,它全部进入生活。谢谢。 –