2010-05-31 2 views
1

나는 호출하여 WindowsIdentity 개체를 검색하고 있습니다 :WindowsIdentity 객체에서 Dispose()를 호출 하시겠습니까? C#

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

을 현재 잘 작동 사용자 이름, 로그온 얻기의 의도.

WindowsIdentity는 IDisposable을 구현하지만 나 자신이 개체를 만들지 않았으므로 끝낼 때 여전히 .Dispose()를 호출해야합니까?

감사합니다.

답변

3

WindowsIdentity.GetCurrent()은 인스턴스를 반환하므로 올바르게 처리해야합니다. MSDN에서

인용구 :

는 현재 Windows 사용자를 대표하는 WindowsIdentity 오브젝트를 돌려줍니다.

WindowsIdentity.GetCurrent()는, 폐기해야 그렇지 않으면 일시적으로 사용자가 핸들을 누출 인스턴스를 반환

그리고 here이 주제에 관한 또 다른 좋은 기사입니다.

+2

두 번째 기사에는 "가장하지 않는 한"링크하지 않은 매우 중요한 컨텍스트가 있습니다. 분명히 오류를 추적하기가 어려울 수 있습니다. – Quibblesome

관련 문제