# File lib/www/mechanize.rb, line 414
    def gen_auth_header(uri, request, auth_header, is_IIS = false)
      @@nonce_count += 1
  
      user = @digest_user
      password = @digest_password
  
      auth_header =~ /^(\w+) (.*)/
  
      params = {}
      $2.gsub(/(\w+)="(.*?)"/) { params[$1] = $2 }
  
      a_1 = "#{@user}:#{params['realm']}:#{@password}"
      a_2 = "#{request.method}:#{uri.path}"
      request_digest = ''
      request_digest << Digest::MD5.hexdigest(a_1)
      request_digest << ':' << params['nonce']
      request_digest << ':' << ('%08x' % @@nonce_count)
      request_digest << ':' << CNONCE
      request_digest << ':' << params['qop']
      request_digest << ':' << Digest::MD5.hexdigest(a_2)
  
      header = ''
      header << "Digest username=\"#{@user}\", "
      header << "realm=\"#{params['realm']}\", "
      if is_IIS then
        header << "qop=\"#{params['qop']}\", "
      else
        header << "qop=#{params['qop']}, "
      end
      header << "uri=\"#{uri.path}\", "
      header << "algorithm=MD5, "
      header << "nonce=\"#{params['nonce']}\", "
      header << "nc=#{'%08x' % @@nonce_count}, "
      header << "cnonce=\"#{CNONCE}\", "
      header << "response=\"#{Digest::MD5.hexdigest(request_digest)}\""
  
      return header
    end