Я использую WindowsIdentity.Impersonate
, чтобы читать из удаленного реестра. Тем не менее, фактический код, который является регистром чтения, находится в делегатах Task
, поэтому он может работать на разных потоках. Мой вопрос заключается в том, является ли законным олицетворять в потоке пользовательского интерфейса и выполнять повышенную работу в пуле потоков?Windows Impersonation и TPL
UPDATE:
// get userHandle from LogonUser(...)
Task task = Task.Run(() =>
{
using (impersonationContext = WindowsIdentity.Impersonate(userHandle))
{
// Do stuff here
if (impersonationContext != null)
{
impersonationContext.Undo();
}
}
}
Что вы подразумеваете под * законным *? –
Я имею в виду, даже если он работает с моей первой попытки, в некоторых случаях это не подведет. Попытка понять, применяется ли олицетворение на текущем потоке или на всех потоках/процессах. – Pablo