コード例 #1
0
        public void LsaCallAuthenticationPackageTest()
        {
            Assert.That(LsaLookupAuthenticationPackage(hLsaConn, MICROSOFT_KERBEROS_NAME, out var pkg), Is.EqualTo((NTStatus)0));

            var krr = new KERB_RETRIEVE_TKT_REQUEST {
                MessageType = KERB_PROTOCOL_MESSAGE_TYPE.KerbRetrieveTicketMessage
            };
            var mem = SafeHGlobalHandle.CreateFromStructure(krr);

            Assert.That(LsaCallAuthenticationPackage(hLsaConn, pkg, (IntPtr)mem, (uint)mem.Size, out var buf, out var len, out var status), Is.EqualTo((NTStatus)0));
            Assert.That(status, Is.EqualTo((NTStatus)0));
            Assert.That(len, Is.GreaterThan(0));
            var respTick = buf.ToStructure <KERB_RETRIEVE_TKT_RESPONSE>().Ticket;
        }
コード例 #2
0
 internal static extern int LsaCallAuthenticationPackage_KERB_RETRIEVE_TKT(IntPtr LsaHandle, int AuthenticationPackage, ref KERB_RETRIEVE_TKT_REQUEST ProtocolSubmitBuffer, int SubmitBufferLength, out IntPtr ProtocolReturnBuffer, out int ReturnBufferLength, out int ProtocolStatus);