使用UseIdentityServer时是否还需要调用AddAuthentication与AddAuthorization?
你的推断完全正确,相关逻辑说明如下:
- 不需要单独调用
UseAuthentication的原因
你贴出的UseIdentityServer源码中,默认的IdentityServerMiddlewareOptions实例的AuthenticationMiddleware方法,内部已经默认实现了对app.UseAuthentication()的调用,相当于IdentityServer已经把认证中间件的注册逻辑封装好了,重复调用不会产生额外收益,完全可以注释省略。 - 必须保留
UseAuthorization的原因UseAuthorization是ASP.NET Core独立的授权中间件,负责校验[Authorize]特性、访问策略、角色权限等逻辑,IdentityServer的中间件链路中没有内置对它的调用,所以必须单独保留,而且要确保调用顺序在UseIdentityServer之后,符合「先完成身份认证、再执行权限校验」的中间件执行规则。
特殊场景提醒:如果你手动修改了
IdentityServerMiddlewareOptions的默认AuthenticationMiddleware配置,替换了默认的认证中间件注册逻辑,才需要手动显式调用UseAuthentication,常规默认配置下不需要额外处理。
内容的提问来源于stack exchange,提问作者Konrad Viltersten
相关产品推荐
相关产品推荐

