我正在尝试使用WebListener服务在IIS下托管ASP.NET Core应用程序,并试图使其利用Windows身份验证。但是,当为我的“ web”命令指定WebListener并在IIS下部署和设置应用程序时,我收到502响应,并显示消息“ Web服务器在充当网关或代理服务器时收到无效响应”。
我能够在IIS下使用Kestrel成功托管应用程序,但是不幸的是Kestrel不支持NTLM(或者至少我已经阅读和体验过)。
因此,我正在寻找一种方法来:
当在本地使用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;
}
}
任何帮助将不胜感激。感谢您抽时间阅读。
HttpPlatformHandler不支持WebListener,所以我认为您将无法实现所需的功能。查看github上的该线程以获取更多详细信息。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句