Когда ответ перенаправляется через Task aync и await. Перенаправление не видно на стороне клиента (браузер). Браузер всегда ждет ответа. По сути, я создал собственный HttpHandler, который также возвращает MVCHandler, поэтому он вызывает
IAsyncResult BeginProcessRequest(HttpContext httpContext, AsyncCallback callback, object state)
Я переопределил этот метод для перенаправления, но перенаправление происходит через другой поток (или что-то).
protected override IAsyncResult BeginProcessRequest(HttpContext httpContext, AsyncCallback callback, object state)
{
if (_hasPermission)
{
return base.BeginProcessRequest(httpContext, callback, state);
}
else
{
return DisplayError(httpContext.Response);
}
}
public async Task DisplayError(HttpResponse _response)
{
Task.Run(() =>
{
_response.RedirectToRoute("Unauthorized");
}).RunSynchronously();
}
Я также попытался сделать это синхронно, написав выше и другой метод. Но все та же проблема. Есть ли способ исправить это
Или предотвращение MVCHandler для вызова ProcessRequest
вместо BeginProcessRequest
метода?