Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
        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);
            }
        }
Exemplo n.º 3
0
 private static SafeCredHandle AcqCredHandle(string secPkg = MICROSOFT_KERBEROS_NAME, SECPKG_CRED use = SECPKG_CRED.SECPKG_CRED_BOTH) => SafeCredHandle.Acquire(secPkg, use);