我想在IIS下使用WebListener服务托管ASP.NET Core应用程序,并试图让它使用Windows身份验证。但是,如果为我的“web”命令指定了WebListener,并且在IIS下部署和设置了应用程序,则会收到502响应,并显示消息“Web服务器在充当网关或代理服务器时收到无效响应”。如何让我的ASP.NET核心应用程序使用WebListener和Windows身份验证在IIS下托管?
我能够在IIS下使用Kestrel成功托管应用程序,但不幸的是Kestrel不支持NTLM(或者至少这是我阅读和经历的)。
所以,我正在寻找一种方式来:
- 获取应用程序使用WebListener代替红隼工作,并
- 让它使用Windows身份验证
这项工作所有在本地使用web命令(即在Visual Studio中运行)的本地工作。它只是在IIS下的WebListener中不起作用。
我安装了最新的HttpPlatformHandler(1.2)。 我有forwardWindowsAuthToken设置为true。 我在配置中禁用了AnonymousAuthentication并启用了WindowsAuthentication。 我的目标是1.0.0-rc1-update1。
下面是一些配置代码在我Startup.cs文件:
public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
{
app.UseIISPlatformHandler();
SetupWindowsAuthForLocalDev(app);
app.UseMvc();
app.UseDefaultFiles();
app.UseStaticFiles();
app.UseDeveloperExceptionPage();
app.UseRuntimeInfoPage();
app.UseAutoMapper();
app.ConfigureStorageAccountForCors(_config);
loggerFactory.AddSerilog();
}
private static void SetupWindowsAuthForLocalDev(IApplicationBuilder app)
{
var listener = app.ServerFeatures.Get<WebListener>();
if (listener != null)
{
listener.AuthenticationManager.AuthenticationSchemes =
AuthenticationSchemes.NTLM;
}
}
任何帮助将不胜感激。感谢您抽时间阅读。
是否有任何这项工作:http://stackoverflow.com/questions/28542141/windows-authentication-in-asp-net-5 –
谢谢肖恩,但不,不幸的是,它不工作。奇怪的是,我可以在本地运行web命令以使用WebListener进行自主宿主。但尝试在IIS中托管它不起作用 - 没有任何请求被解决。 – slade73