L'Authentification Windows avec Python et urllib2

Je veux récupérer des données à partir d'un site web qui requiert mon nom d'utilisateur windows et le mot de passe.

Pour l'instant, j'ai:

opener = build_opener()
try:
    page = opener.open("http://somepagewhichneedsmywindowsusernameandpassword/")
    print page
except URLError:
    print "Oh noes."

Est-ce pris en charge par urllib2? J'ai trouvé Python NTLM, mais qui m'oblige à mettre mon nom d'utilisateur et mot de passe. Est-il une manière de il suffit de saisir les informations d'authentification d'une certaine manière (par exemple, comme IE, Firefox, si j'ai changé le network.automatic-ntlm-auth.trusted-uris paramètres).

Modifier après msander la réponse de

Donc, j'ai maintenant à ceci:

# Send a simple "message" over a socket - send the number of bytes first,
# then the string.  Ditto for receive.
def _send_msg(s, m):
    s.send(struct.pack("i", len(m)))
    s.send(m)

def _get_msg(s):
    size_data = s.recv(struct.calcsize("i"))
    if not size_data:
        return None
    cb = struct.unpack("i", size_data)[0]
    return s.recv(cb)

def sspi_client():
    c = httplib.HTTPConnection("myserver")
    c.connect()
    # Do the auth dance.
    ca = sspi.ClientAuth("NTLM", win32api.GetUserName())
    data = None
    while 1:
        err, out_buf = ca.authorize(data) # error 400 triggered by this line
        _send_msg(c.sock, out_buf[0].Buffer)

        if err==0:
            break

        data = _get_msg(c.sock)

    print "Auth dance complete - sending a few encryted messages"
    # Assume out data is sensitive - encrypt the message.
    for data in "Hello from the client".split():
        blob, key = ca.encrypt(data)
        _send_msg(c.sock, blob)
        _send_msg(c.sock, key)
    c.sock.close()
    print "Client completed."

qui est assez bien arraché de socket_server.py (voir ici). Mais j'obtiens une erreur de 400 bad request. Quelqu'un aurait-il d'autres idées?

Merci,

Dom

Peut-être anwsers ma question va vous aider.
par "saisir les informations d'authentification" entendez-vous, obtenez votre nom de domaine et mot de passe quelque part, et les utiliser dans votre script? J'aimerais savoir si il est possible aussi 🙂
Oui, c'est exactement ce que je veux dire.

OriginalL'auteur Dominic Rodger | 2009-05-26