Thread.CurrentPrincipal сбрасывается/ClaimsPrincipal теряется при извлечении из ClaimsPrincipal.Current

У меня есть приложение WinForms под управлением .Net 4.5.2.

При входе я создаю ClaimsPrincipal с кучей утверждений. Я сохраняю в Thread.CurrentPrincipal. В том же процессе входа в систему ClaimsPrincipal работает нормально.

После инициализации приложения, когда пользователь щелкает элемент управления, я пытаюсь получить ClaimsPrincipal из ClaimsPrincipal.Current. Когда я это делаю, это GenericPrincipal, и он теряет все свои претензии.

Что я делаю не так?


person Chris    schedule 26.08.2016    source источник


Ответы (1)


Кажется, это проблема с WinForms и .Net 4.5.2. Microsoft заявила, что собирается прекратить поддержку WinForms.

Что я обнаружил в этом случае, так это то, что если вы вызываете ClaimsPrincipal.Current до того, как установите его через Thread.CurrentPrincipal... у вас возникнут проблемы.

Либо статический объект получает GenericPrincipal по умолчанию, либо Thread.CurrentPrincipal сбрасывается.

Какова бы ни была причина нестабильности.

person Chris    schedule 27.08.2016