Thread.CurrentPrincipal теряется после обновления до.NET 4.5.1
Я пытался исследовать эту ошибку, но я не нашел никакой полезной информации об этом. У нас есть приложение ASP.NET Web Api 1.0, которое использовало.Net 4. Мы обновили его до.Net 4.5.1, MVC 5, Web Api 2 и обнаружили проблему, когда мы назначали пользователя для Thread.CurrentPrincipal в Атрибут [Authorize] и пытается извлечь эту информацию позже, но теперь после обновления, Thread.CurrentPrincipal теряется.
public class OAuthBearer : AuthorizeAttribute
public override void OnAuthorization(HttpActionContext actionContext)
{
(...)
Thread.CurrentPrincipal = new GenericPrincipal(new GenericIdentity
(accessToken.ClientId, "OAuth Bearer"), accessToken.ApprovedScopes.ToArray());
(...)
}
}
Ранее в нашем коде контроллера мы могли получить Thread.CurrentPrincipal, и для него было установлено значение Generic Principal. Но теперь, после того как мы обновили Thread.CurrentPrincipal потерян.
Одним из обходных путей было установить для Generic Principal значение HTTPContext.User, который, кажется, правильно передается в код нашего контроллера, но я читал, что Thread.CurrentPrincipal - это то, что вы должны использовать для Web Api.
Любая помощь будет оценена.