public override void Dispose()
 {
     try
     {
         lock (ThisLock)
         {
             if (SspiNegotiation != null)
             {
                 SspiNegotiation.Dispose();
             }
             if (NegotiationDigest != null)
             {
                 ((IDisposable)NegotiationDigest).Dispose();
             }
         }
     }
     finally
     {
         base.Dispose();
     }
 }
 public override void Dispose()
 {
     try
     {
         using (AsyncLock.TakeLock())
         {
             if (SspiNegotiation != null)
             {
                 SspiNegotiation.Dispose();
             }
             if (NegotiationDigest != null)
             {
                 ((IDisposable)NegotiationDigest).Dispose();
             }
         }
     }
     finally
     {
         base.Dispose();
     }
 }