public Task<HttpResponseMessage> ExecuteAuthorizationFilterAsync(HttpActionContext actionContext, CancellationToken cancellationToken, Func<Task<HttpResponseMessage>> continuation) { try { var result = new TokenAuthenticator().Authenticate(actionContext, _authenticator); } catch (Exception e) { TaskCompletionSource<HttpResponseMessage> tcs = new TaskCompletionSource<HttpResponseMessage>(); tcs.SetException(e); return tcs.Task; } if (actionContext.Response != null) { TaskCompletionSource<HttpResponseMessage> tcs = new TaskCompletionSource<HttpResponseMessage>(); tcs.SetResult(actionContext.Response); return tcs.Task; } else { return continuation().ContinueWith<HttpResponseMessage>((tsk) => { HttpResponseMessage response = tsk.Result; return response; }, TaskContinuationOptions.OnlyOnRanToCompletion); } }
public Task <HttpResponseMessage> ExecuteAuthorizationFilterAsync(HttpActionContext actionContext, CancellationToken cancellationToken, Func <Task <HttpResponseMessage> > continuation) { try { var result = new TokenAuthenticator().Authenticate(actionContext, _authenticator); } catch (Exception e) { TaskCompletionSource <HttpResponseMessage> tcs = new TaskCompletionSource <HttpResponseMessage>(); tcs.SetException(e); return(tcs.Task); } if (actionContext.Response != null) { TaskCompletionSource <HttpResponseMessage> tcs = new TaskCompletionSource <HttpResponseMessage>(); tcs.SetResult(actionContext.Response); return(tcs.Task); } else { return(continuation().ContinueWith <HttpResponseMessage>((tsk) => { HttpResponseMessage response = tsk.Result; return response; }, TaskContinuationOptions.OnlyOnRanToCompletion)); } }