Impersonation and asynchrony in ASP.NET WebAPI
问题 Update 2 This question originally was "Does impersonation work with Web API?" And the question to that question is "Yes, it does." But the problem was not about Web API but impersonation itself. (The description of the problem is below) But now I'd like to tell others about the solution. My controllers are async and my mistaken premise was that any thread spawned by impersonated thread has the same identity as its parent. By default it is false: TPL does not flow impersonation across threads.