我有一個WebService創建一個任務和一個延續任務。延續任務在與前面相同的線程
在第一個任務中,我們設置Thread.CurrentPrincipal中
因此,當ContinuationTask啓動時,它不再具有Thread.CurrentPrincipal中。
我想在ContinuationTask指定它應該在同一個線程作爲它的先行詞運行。
我已經搜索了網頁,但是我只發現線程在SynchronizationContext中運行的要求,因此我開始認爲我缺少一些基本規則,特別是關於Thread.Principal應該如何工作。
搭售任務複製到線程是一個壞主意,而且容易出錯的異常情況。嘗試將WindowsIDentity或標記對象作爲狀態傳遞給任務並在每個任務中模擬用戶,而不是修復線程的主體並要求所有任務使用同一個線程。否則,如果發生異常並且忘記清除標識 –
PS,則可能會冒更改ThreadPool身份的風險。你使用什麼類型的身份? WindowsIdentity還是別的? –
我們實現了我們自己的IPrincipal,它是進行身份驗證的應用程序本身。 看起來最好的是通過IPrincipal之間的任務。 –