2010-05-31 15 views
1

Je suis un objet Récupération WindowsIdentity en appelant:Appelez Dispose() sur un objet WindowsIdentity? C#

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

avec l'intention d'obtenir l'utilisateur actuellement connecté sur le nom d'utilisateur, qui fonctionne très bien.

WindowsIdentity implémente IDisposable, mais comme je ne crée pas l'objet moi-même, ai-je encore besoin d'appeler .Dispose() quand j'en ai fini ou non?

Merci.

Répondre

3

WindowsIdentity.GetCurrent() renvoie une instance, vous devez donc la mettre au rebut correctement.

Citation de MSDN:

Renvoie un objet WindowsIdentity que représente l'utilisateur Windows.

Et here est un autre bel article au sujet de ce sujet:

WindowsIdentity.GetCurrent() retourne une instance que vous devez disposer, sinon vous fuir temporairement une poignée utilisateur.

+2

Ce deuxième article a un contexte très important que vous ne liez pas: "Sauf si vous vous personnifiez". Apparemment, cela peut entraîner difficile de traquer les erreurs. – Quibblesome