IdentityServer Topics(6)- Windows身份验证

在Windows平台上,你可以让IdentityServer使用 Windows身份验证 对用户进行身份验证。 当你使用以下类型托管运行 IdentityServer 时, Windows身份验证功能可用:

  • 使用Kestrel服务器但需要使用IIS integration或者IIS
  • 使用HTTP.sys服务器

在这两种情况下,Windows身份认证将会触发 HttpContext 的 ChallengeAsync 方法,使用 Scheme "Windows"。快速入门:quickstart UI 的 AccountController 实现了该逻辑,

使用Kestrel#

当使用Kestrel,在代码中使用IIS integration,且必须通过IIS来运行:

var host = new WebHostBuilder()
    .UseKestrel()
    .UseUrls("http://localhost:5000")
    .UseContentRoot(Directory.GetCurrentDirectory())
    .UseIISIntegration()
    .UseStartup<Startup>()
    .Build();

在使用WebHost.CreateDefaultBuilder方法设置WebHostBuilder时,Kestrel会自动配置。

此外,IIS(或IIS Express)中的虚拟目录必须启用Windows和匿名身份验证。

IIS integration 层将配置一个Windows身份验证处理程序到DI,可以通过身份验证服务调用。 通常在IdentityServer中,建议禁用此自动行为。 可以在 ConfigureServices 中完成:

services.Configure(iis =>
{
iis.AuthenticationDisplayName = "Windows";
iis.AutomaticAuthentication = false;
});

作者:晓晨Master(李志强)

出处:https://www.cnblogs.com/stulzq/p/8145288.html

版权:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议进行许可。

posted @   晓晨Master  阅读(3434)  评论(2编辑  收藏  举报
编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
历史上的今天:
2015-12-29 Sql Server利用游标批量清空数据表
more_horiz
keyboard_arrow_up dark_mode palette
选择主题
menu
点击右上角即可分享
微信分享提示