Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches

◆ ApplyControlToken()

static unsafe int System.Net.Security.SafeDeleteContext.ApplyControlToken ( ref SafeDeleteContext refContext,
in SecurityBuffer inSecBuffer )
inlinestaticpackageinherited

Definition at line 473 of file SafeDeleteContext.cs.

474 {
475 if (System.Net.NetEventSource.Log.IsEnabled())
476 {
477 System.Net.NetEventSource.Info(null, $"refContext = {refContext}, inSecBuffer = {inSecBuffer}", "ApplyControlToken");
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)

References System.Net.NetEventSource.Info(), System.Net.NetEventSource.Log, and System.IntPtr.Zero.

Referenced by System.Net.SSPISecureChannelType.ApplyControlToken().