我尝试使用WebListener服务在IIS下托管ASP.NET Core应用程序,并尝试使用Windows身份验证。但是,当为我的" web"指定WebListener时命令,并在IIS下部署和设置应用程序,我得到502响应消息" Web服务器在充当网关或代理服务器时收到无效响应。"
我能够在IIS下使用Kestrel成功托管应用程序,但遗憾的是Kestrel并不支持NTLM(或者至少是我所阅读和体验过的)。 / p>
所以,我正在寻找一种方法:
当在本地使用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;
}
}
非常感谢任何帮助。感谢您花时间阅读本文。
答案 0 :(得分:1)
HttpPlatformHandler不支持WebListener,所以我认为你无法达到你想要的效果。有关详细信息,请查看github上的this thread。