Is it possible to use async/await in MVC 4 AuthorizeAttribute?

The only override I see exposed on MVC’s AuthorizeAttribute is public override void OnAuthorization( AuthorizationContext filterContext ) which is not suitable for use with async/await because it doesn’t return a Task. Is there another way to create an AuthorizeAttribute in MVC that allows the use of async/await?

Using ASP.NET Web API, my ExecutionContext isn’t flowing in async actions

I’m having difficulty understanding the mechanics behind ExecutionContext. From what I’ve read online, context-sensitive items such as security (Thread Principal), culture, etc, should flow across asynchronous threads within the bounds of an execution unit of work. I’m encountering very confusing and potentially dangerous bugs though. I’m noticing my thread’s CurrentPrincipal is getting lost across async … Read more

Preserve HttpContext when going async with WebAPI (Medium Trust)

I am building a set of ASP.Net hosted WebAPI services that must use an old library which depends heavily on HttpContext.Current. I am having trouble ensuring that context is preserved in all the methods that participate in an async call. I have tried several variations with await/Task.Wait and TaskScheduler.FromCurrentSynchronizationContext() on the below code.

Wrapping synchronous code into asynchronous call

I have a method in ASP.NET application, that consumes quite a lot of time to complete. A call to this method might occur up to 3 times during one user request, depending on the cache state and parameters that user provides. Each call takes about 1-2 seconds to complete. The method itself is synchronous call to the service and there is no possibility to override the implementation.
So the synchronous call to the service looks something like the following: