示例#1
0
        public byte[] GenerateServerChallenge()
        {
            NegotiateMessage negotiateMessage = new NegotiateMessage();

            negotiateMessage.NegotiateFlags = NegotiateFlags.NegotiateUnicode | NegotiateFlags.NegotiateOEM | NegotiateFlags.RequestTarget | NegotiateFlags.NegotiateSign | NegotiateFlags.NegotiateSeal | NegotiateFlags.NegotiateLanManagerKey | NegotiateFlags.NegotiateNTLMKey | NegotiateFlags.NegotiateAlwaysSign | NegotiateFlags.NegotiateVersion | NegotiateFlags.Negotiate128 | NegotiateFlags.Negotiate56;
            negotiateMessage.Version        = Authentication.Version.Server2003;

            byte[]           negotiateMessageBytes = negotiateMessage.GetBytes();
            byte[]           challengeMessageBytes = SSPIHelper.GetType2Message(negotiateMessageBytes, out m_serverContext);
            ChallengeMessage challengeMessage      = new ChallengeMessage(challengeMessageBytes);

            m_serverChallenge = challengeMessage.ServerChallenge;
            return(m_serverChallenge);
        }