2016-08-26 23 views
0

我有一個運行.Net 4.5.2的WinForms應用程序。Thread.CurrentPrincipal是Reset/ClaimsPrincipal當從ClaimsPrincipal檢索時丟失。當前

登錄時,我創建了一系列聲明的ClaimsPrincipal。我保存到Thread.CurrentPrincipal。在相同的登錄過程中,ClaimsPrincipal正常工作。

應用程序初始化後,當用戶單擊控件時,我嘗試從ClaimsPrincipal.Current檢索ClaimsPrincipal。當我這樣做時,它是一個GenericPrincipal,它失去了所有的要求。

我在做什麼錯?

回答

0

看來這是WinForms和.Net 4.5.2的問題。微軟確實表示他們將停止支持WinForms。

我在這種情況下發現,如果您在通過Thread.CurrentPrincipal設置之前調用ClaimsPrincipal.Current,則會遇到麻煩。

要麼靜態對象被設置爲默認的GenericPrincipal,要麼Thread.CurrentPrincipal被重置。

無論什麼原因,不穩定性在那裏。