gpt4 book ai didi

c# - 如何使用 WebListener 和 Windows 身份验证让我的 ASP.NET Core 应用程序托管在 IIS 下?

转载 作者:太空宇宙 更新时间:2023-11-03 12:51:29 26 4
gpt4 key购买 nike

我正在尝试使用 WebListener 服务在 IIS 下托管一个 ASP.NET Core 应用程序,并试图让它使用 Windows 身份验证。但是,当为我的“web”命令指定 WebListener,并且在 IIS 下部署和设置应用程序时,我收到 502 响应消息“Web 服务器在充当网关或代理服务器时收到无效响应。”

我能够在 IIS 下使用 Kestrel 成功托管应用程序,但不幸的是,Kestrel 不支持 NTLM(或者至少我是这样阅读和体验过的)。

所以,我正在寻找一种方法:

  • 使用 WebListener 而不是 Kestrel 让应用程序工作,并且
  • 让它与 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;
}
}

如有任何帮助,我们将不胜感激。感谢您花时间阅读本文。

最佳答案

HttpPlatformHandler 不支持 WebListener,所以我认为您无法实现您想要的。看看this thread在 github 上获取更多详细信息。

关于c# - 如何使用 WebListener 和 Windows 身份验证让我的 ASP.NET Core 应用程序托管在 IIS 下?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35370445/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com