ASP.NET Core Identity自动生成端点未在Swagger显示,授权异常求助
ASP.NET Core Identity API端点未显示在Swagger中的排查方案
启用Swagger对非控制器端点的支持
Identity通过MapIdentityApi注册的端点属于非控制器端点,Swagger默认不会生成这些端点的文档。需要在AddSwaggerGen配置中开启相关选项:builder.Services.AddSwaggerGen(options => { options.IncludeNonControllerEndpoints = true; });确认端点注册顺序
确保MapIdentityApi<IdentityUser>()的注册位置正确,必须在授权中间件之后、端点映射阶段配置:app.UseRouting(); app.UseAuthentication(); app.UseAuthorization(); app.MapIdentityApi<IdentityUser>(); app.MapControllers();错误的顺序会导致端点无法被Swagger捕获,甚至无法正常注册。
检查Identity服务配置完整性
确认AddIdentityApiEndpoints已关联数据库上下文,缺少EF存储会导致服务不完整:builder.Services.AddIdentityApiEndpoints<IdentityUser>() .AddEntityFrameworkStores<ApplicationDbContext>();排查Swagger UI的过滤规则
检查UseSwaggerUI中是否存在过滤非控制器端点的配置,比如DefaultModelsExpandDepth(-1)或自定义筛选逻辑,这类设置可能隐藏Identity自动生成的端点。确认Swagger的启用环境
若仅在开发环境启用Swagger,生产环境下不会显示任何Swagger文档,需确保当前运行环境符合Swagger的启用条件。
内容的提问来源于stack exchange,提问作者David Pugh
相关产品推荐
相关产品推荐

