internal NTAuthentication(string package, NetworkCredential networkCredential, string spn, WebRequest request, System.Security.Authentication.ExtendedProtection.ChannelBinding channelBinding) : this(false, package, networkCredential, spn, GetHttpContextFlags(request), request.GetWritingContext(), channelBinding)
 {
     if ((package == "NTLM") || (package == "Negotiate"))
     {
         this.m_UniqueUserId = Interlocked.Increment(ref s_UniqueGroupId).ToString(NumberFormatInfo.InvariantInfo) + this.m_UniqueUserId;
     }
 }
        //
        // .Ctors
        //

        //
        // Use only for client HTTP authentication
        //
        internal NTAuthentication(string package, NetworkCredential networkCredential, SpnToken spnToken, 
                WebRequest request, ChannelBinding channelBinding) :
            this(false, package, networkCredential, spnToken.Spn, GetHttpContextFlags(request, spnToken.IsTrusted), 
                request.GetWritingContext(), channelBinding)
        {
            //
            //  In order to prevent a race condition where one request could
            //  steal a connection from another request, before a handshake is
            //  complete, we create a new Group for each authentication request.
            //
            if (package == NtlmClient.AuthType || package == NegotiateClient.AuthType) {
                m_UniqueUserId = (Interlocked.Increment(ref s_UniqueGroupId)).ToString(NumberFormatInfo.InvariantInfo) + m_UniqueUserId;
            }
        }
 internal NTAuthentication(string package, NetworkCredential networkCredential, string spn, WebRequest request, System.Security.Authentication.ExtendedProtection.ChannelBinding channelBinding) : this(false, package, networkCredential, spn, GetHttpContextFlags(request), request.GetWritingContext(), channelBinding)
 {
     if ((package == "NTLM") || (package == "Negotiate"))
     {
         this.m_UniqueUserId = Interlocked.Increment(ref s_UniqueGroupId).ToString(NumberFormatInfo.InvariantInfo) + this.m_UniqueUserId;
     }
 }