2010-05-31 3 views
1

Я извлечения объекта WindowsIdentity по телефону:Вызов Dispose() для объекта WindowsIdentity? C#

win_id = System.Security.Principal.WindowsIdentity.GetCurrent(); 

с целью получения текущего вошедшего на имя пользователя, который работает отлично.

WindowsIdentity реализует IDisposable, но так как я сам не создаю объект, мне еще нужно вызвать .Dispose(), когда я закончил с этим или нет?

Спасибо.

ответ

3

WindowsIdentity.GetCurrent() возвращает экземпляр, поэтому вы должны его правильно распорядиться.

Цитата MSDN:

Возвращает объект WindowsIdentity, который представляет текущего пользователя Windows.

И here еще одна хорошая статья по этой теме:

WindowsIdentity.GetCurrent() возвращает экземпляр, который вы должны распоряжаться, иначе вы временно просачиваться дескриптор пользователя.

+2

Эта вторая статья имеет очень важный контекст, который вы не указываете: «Если вы не олицетворяете». По-видимому, это может привести к сложному выявлению ошибок. – Quibblesome