Exemple #1
0
 public void InitializeSecurityContextTest()
 {
     using (var hCred = AcqCredHandle())
     {
         const ASC_REQ STANDARD_CONTEXT_ATTRIBUTES = ASC_REQ.ASC_REQ_CONNECTION | ASC_REQ.ASC_REQ_ALLOCATE_MEMORY;
         var           un          = WindowsIdentity.GetCurrent().Name;
         var           safeBuffMem = SafeHGlobalHandle.CreateFromStructure(new SecBuffer {
             BufferType = SecBufferType.SECBUFFER_TOKEN
         });
         var sbb = SecBufferDesc.Default;
         sbb.cBuffers = 1;
         sbb.pBuffers = (IntPtr)safeBuffMem;
         var hNewCtxt = CtxtHandle.Null;
         var hr       = InitializeSecurityContext(hCred, IntPtr.Zero, un, STANDARD_CONTEXT_ATTRIBUTES, 0,
                                                  DREP.SECURITY_NATIVE_DREP, IntPtr.Zero, 0, ref hNewCtxt, ref sbb, out var attr, out var exp);
         Assert.That(hr, Is.EqualTo((HRESULT)0).Or.Property("Succeeded").True);
         Assert.That(DeleteSecurityContext(hNewCtxt), Is.EqualTo((HRESULT)0));
         Assert.That(FreeContextBuffer(safeBuffMem.ToStructure <SecBuffer>().pvBuffer), Is.EqualTo((HRESULT)0));
     }
 }
Exemple #2
0
 internal static extern SEC_RESULT AcceptSecurityContext(SecurityHandle phCredential, ref SecurityHandle phContext,
                                                         ref SecBufferDesc pInput, ASC_REQ fContextReq, Data_Rep TargetDataRep, out SecurityHandle phNewContext,
                                                         ref SecBufferDesc pOutput, out uint pfContextAttr, out SecurityInteger ptsTimeStamp);