我已經實現了一個具有swashbuckle/swagger和自定義DelegatingHandler的WebApi項目。 我已經添加了一個SwaggerAccessMessageHandler來檢查是否在這種情況下,我不希望我的自定義處理程序運行時發出了一個Swagger請求。WebApi和使用Swagger
我已經註冊消息處理程序,
GlobalConfiguration.Configuration.MessageHandlers.Add(new SwaggerAccessMessageHandler());
用的自定義實現:
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");
}
}
但是,當我可以在我的WebAPI用/招搖,我得到了一個空白頁面,而不是招搖的UI。
更新:好的我現在已經刪除了Swagger處理程序。 我添加了一個新的AuthenticationHandler,它在傳入的請求查詢字符串中檢查有效的userKey。我現在無法訪問招搖。 有沒有辦法解決這個問題,所以當我想訪問大舉的我的自定義處理程序不被調用?
請參閱更新以上。 – wakthar