在.NET Core 6.0中,你可以使用自定义 Middleware 来限制 Swagger/index.html 的访问,当用户进入到Swagger/index.html让系统提示404
- 创建一个自定义 Middleware 类,例如
SwaggerNotFoundMiddleware
:public class SwaggerNotFoundMiddleware { private readonly RequestDelegate _next; public SwaggerNotFoundMiddleware(RequestDelegate next) { _next = next; } public async Task Invoke(HttpContext context) { // 判断请求路径是否为 Swagger/index.html if (context.Request.Path.Value.Contains("/swagger/index.html")) { // 返回 404 错误页面 context.Response.StatusCode = 404; await context.Response.WriteAsync("Not Found"); return; } // 调用下一个 Middleware 或处理程序 await _next.Invoke(context); } }
- 在
Startup.cs
文件的Configure
方法中,将自定义 Middleware 注册到应用程序的请求处理管道中,放在 Swagger Middleware 之前:
public void Configure(IApplicationBuilder app, IWebHostEnvironment env) { // 其他 Middleware // 注册 Swagger Middleware app.UseSwagger(); app.UseSwaggerUI(c => { // Swagger UI 配置 }); // 注册自定义 Middleware,放在 Swagger Middleware 之前 app.UseMiddleware<SwaggerNotFoundMiddleware>(); // 其他 Middleware }