2010-05-31 83 views
1

我通过调用检索WindowsIdentity对象:在WindowsIdentity对象上调用Dispose()? C#

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

与得到当前登录的用户名,工作正常的意图。

WindowsIdentity实现了IDisposable,但由于我自己并没有创建对象,当我完成它时还是需要调用.Dispose()方法吗?

谢谢。

回答

3

WindowsIdentity.GetCurrent()返回一个实例,所以你应该妥善处置它。从MSDN

报价:

返回一个WindowsIdentity对象是 表示当前的Windows用户。

而且here是关于该主题的另一个好文章:

WindowsIdentity.GetCurrent()返回,你应该处理, 否则你暂时泄漏用户手柄一个实例。

+2

第二篇文章有非常重要的背景,你不要链接:“除非你冒充”。显然这可能导致难以追踪错误。 – Quibblesome 2017-01-11 10:57:21

相关问题