首页 > Python, 日常 > python 实现 windows 身份验证登录

python 实现 windows 身份验证登录

最近在打算写个工具去获取车辆的停车信息,以提醒自己及时地挪车。

常规地讲,需要先登录内网系统查看,内网在域里,使用了单点登录和 winodws 身份验证机制。Python 里大家使用的比较多的是 requests 库,但是它不支持这样的登录。

我们就需要别的库来帮忙了,经过一番搜索,发现 requests_ntlm 满足要求。

import requests
from requests_ntlm import HttpNtlmAuth

response = requests.get(url, auth=HttpNtlmAuth(“name”, “password”))

经过实际验证,这个库会有2次的401错误请求。

顺便也搜索了下如何使用 .Net 来获取,看起来更简单:

string url = “http://adm.xxxx.com/Biz/ParkingCarOverTime/List_Employee.aspx”;

HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
request.PreAuthenticate = true;
NetworkCredential credential = new NetworkCredential(“name”, “password”);
request.Credentials = credential;

HttpWebResponse response = (HttpWebResponse)request.GetResponse();

Console.WriteLine($”Authentication successful {response.StatusCode}”);
StreamReader sr = new StreamReader(response.GetResponseStream());
Console.WriteLine(sr.ReadToEnd());

不要问细节,问就是使用 PreAuthenticate 属性

分类: Python, 日常 标签:
  1. 本文目前尚无任何评论.
  1. 本文目前尚无任何 trackbacks 和 pingbacks.