Ho un servizio Web che crea un'attività e un'attività di continuazione.Operazione di continuazione nella stessa discussione precedente
Nel primo compito che ci Thread.CurrentPrincipal
Quindi, quando il ContinuationTask inizia non ha più il Thread.CurrentPrincipal.
vorrei specificare nel ContinuationTask che dovrebbe funzionare nello stesso thread come suo antecedente.
Ho cercato nel web ma ho trovato solo il requisito per il thread da eseguire in SynchronizationContext, quindi sto iniziando a pensare che manchi qualche regola di base, specialmente per quanto riguarda Thread.Principal dovrebbe funzionare.
compiti Tying per le discussioni è una cattiva idea e soggetto a errori in caso di eccezioni. Invece di correggere il principal del thread e richiedere a tutte le attività di utilizzare lo stesso thread, provare a passare l'oggetto WindowsIDentity o token alle attività come stato e impersonare l'utente in ogni attività. Altrimenti si corre il rischio di cambiare l'identità di ThreadPool se si verifica un'eccezione e si dimentica di cancellare l'identità –
PS. Che tipo di identità stai usando? WindowsIdentity o qualcos'altro? –
Abbiamo implementato il nostro IPrincipal ed è l'applicazione stessa che esegue l'autenticazione. Sembra che la cosa migliore sia passare l'IPrincipal tra i compiti. –