Saya telah mengimplementasikan proyek WebApi yang memiliki swashbuckle/swagger dan DelegatingHandler khusus. Saya telah menambahkan SwaggerAccessMessageHandler untuk memeriksa apakah permintaan angkuh dibuat dalam hal ini saya tidak ingin penangan khusus saya dijalankan.
Saya telah mendaftarkan penangan pesan sebagai
GlobalConfiguration.Configuration.MessageHandlers.Add(new SwaggerAccessMessageHandler());
dengan implementasi khusus:
public class SwaggerAccessMessageHandler : DelegatingHandler
{
protected override Task<HttpResponseMessage> SendAsync(HttpRequestMessage request, CancellationToken cancellationToken)
{
if (IsSwagger(request))
{
var response = request.CreateResponse(HttpStatusCode.Unauthorized);
return Task.FromResult(response);
}
else
{
return base.SendAsync(request, cancellationToken);
}
}
private bool IsSwagger(HttpRequestMessage request)
{
return request.RequestUri.PathAndQuery.StartsWith("/swagger");
}
}
Tetapi ketika saya dapat menggunakan WebApi saya dengan /swagger, saya mendapatkan halaman kosong, bukan ui swagger.
PEMBARUAN: Oke, saya telah menghapus pengendali Swagger untuk saat ini. Saya telah menambahkan AuthenticationHandler baru yang memeriksa userKey yang valid di string permintaan permintaan masuk. Saya tidak dapat mengakses kesombongan sekarang. Apakah ada jalan keluarnya sehingga ketika saya ingin mengakses kesombongan, penangan khusus saya tidak dipanggil?