474 {
476 {
478 }
479 int result = -2146893055;
480 fixed (byte* ptr = inSecBuffer.token)
481 {
482 global::Interop.SspiCli.SecBufferDesc inputBuffers = new global::Interop.SspiCli.SecBufferDesc(1);
483 global::Interop.SspiCli.SecBuffer secBuffer = default(global::Interop.SspiCli.SecBuffer);
484 inputBuffers.pBuffers = &secBuffer;
485 secBuffer.cbBuffer = inSecBuffer.size;
486 secBuffer.BufferType = inSecBuffer.type;
487 secBuffer.pvBuffer = ((inSecBuffer.unmanagedToken !=
null) ? inSecBuffer.unmanagedToken.DangerousGetHandle() : ((inSecBuffer.token ==
null || inSecBuffer.token.Length == 0) ?
IntPtr.Zero : ((
IntPtr)(ptr + inSecBuffer.
offset))));
488 global::Interop.SspiCli.CredHandle credHandle = ((refContext !=
null) ? refContext._handle : default(global::
Interop.SspiCli.CredHandle));
489 if ((refContext == null || refContext.IsInvalid) && credHandle.IsZero)
490 {
491 refContext = new SafeDeleteSslContext();
492 }
493 bool success = false;
494 try
495 {
496 refContext.DangerousAddRef(ref success);
497 result = global::Interop.SspiCli.ApplyControlToken(credHandle.IsZero ? null : (&credHandle), ref inputBuffers);
498 }
499 finally
500 {
501 if (success)
502 {
503 refContext.DangerousRelease();
504 }
505 }
506 }
507 return result;
508 }
static readonly System.Net.NetEventSource Log
static void Info(object thisOrContextObject, FormattableString formattableString=null, [CallerMemberName] string memberName=null)