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); }