public void AcquireCredentialsHandleTest() { var hCred = SafeCredHandle.Null; Assert.That(() => hCred = SafeCredHandle.Acquire("Kerberos", SECPKG_CRED.SECPKG_CRED_OUTBOUND), Throws.Nothing); Assert.That(hCred.DangerousGetHandle().IsInvalid, Is.False); Assert.That(() => ((IDisposable)hCred).Dispose(), Throws.Nothing); var sid = new SEC_WINNT_AUTH_IDENTITY(Environment.UserName, Environment.UserDomainName, ""); Assert.That(() => hCred = SafeCredHandle.Acquire <SEC_WINNT_AUTH_IDENTITY>(NTLMSP_NAME, SECPKG_CRED.SECPKG_CRED_OUTBOUND, sid, null, null, out _), Throws.Nothing); Assert.That(hCred.DangerousGetHandle().IsInvalid, Is.False); Assert.That(() => ((IDisposable)hCred).Dispose(), Throws.Nothing); }
public void InitializeSecurityContextTest2() { var sid = new SEC_WINNT_AUTH_IDENTITY(Environment.UserName, Environment.UserDomainName, ""); using (var hCred = SafeCredHandle.Acquire <SEC_WINNT_AUTH_IDENTITY>(NTLMSP_NAME, SECPKG_CRED.SECPKG_CRED_OUTBOUND, sid)) { var hCtxt = new SafeCtxtHandle(); var fContextReq = ASC_REQ.ASC_REQ_REPLAY_DETECT | ASC_REQ.ASC_REQ_SEQUENCE_DETECT | ASC_REQ.ASC_REQ_CONFIDENTIALITY | ASC_REQ.ASC_REQ_DELEGATE; var hr = InitializeSecurityContext(hCred, hCtxt, WindowsIdentity.GetCurrent().Name, fContextReq, DREP.SECURITY_NATIVE_DREP, null, SecBufferType.SECBUFFER_TOKEN, out var sbd, out _, out _); Assert.That(hr, Is.EqualTo((HRESULT)0).Or.Property("Succeeded").True); Assert.That(hCtxt.DangerousGetHandle().IsNull, Is.False); Assert.That(sbd.Count, Is.EqualTo(1)); Assert.That(sbd[0].pvBuffer, Is.Not.EqualTo(IntPtr.Zero)); Assert.That(() => sbd.Dispose(), Throws.Nothing); } }
private static SafeCredHandle AcqCredHandle(string secPkg = MICROSOFT_KERBEROS_NAME, SECPKG_CRED use = SECPKG_CRED.SECPKG_CRED_BOTH) => SafeCredHandle.Acquire(secPkg, use);