2016-02-12 61 views
1

我想在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; 
    } 
} 

任何帮助将不胜感激。感谢您抽时间阅读。

+0

是否有任何这项工作:http://stackoverflow.com/questions/28542141/windows-authentication-in-asp-net-5 –

+1

谢谢肖恩,但不,不幸的是,它不工作。奇怪的是,我可以在本地运行web命令以使用WebListener进行自主宿主。但尝试在IIS中托管它不起作用 - 没有任何请求被解决。 – slade73

回答

1

HttpPlatformHandler不支持WebListener,所以我不认为你将能够实现你想要的。查看github上的this thread了解更多详情。

+0

谢谢帕维尔! – slade73

相关问题