Есть сайт на ASP.NET с системой авторизации, нужно получать информацию как авторизованный юзер. При авторизации в браузере присваиваются куки и id сессии. Я их бросаю на сайт обычным запросом на CURL и все работает ровно сутки! Потом опять авторизуюсь в браузере, подставляю новую куку и опять сутки работает. И так продолжается 3-5 дней и потом все, чтобы я не делал куки из браузера перестают подходит, хотя я делаю все тоже самое и запрос отдает ответ:
<h2>401 - Unauthorized: Access is denied due to invalid credentials.</h2>\r\n
<h3>You do not have permission to view this directory or page using the credentials that you supplied.</h3>
Через неделю где-то сайт опять начинает отдавать куки которые подходят для запроса Curl и все опять начинает работать. Куда копать? Подскажите кто знает, что я делаю не так? Может есть какая то особенность ASP.NET в авторизации. Или я изобретаю велосипед и есть способы проще получить данные?
Заголовки запроса
General
Request URL: https://site.ru/DataItemGet?appid=y8H3Vuv_nOx1vVR&t=1635752192
Request Method: POST
Status Code: 200 OK
Remote Address: 192.168.0.1:443
Referrer Policy: strict-origin-when-cross-origin
Response Headers
Access-Control-Expose-Headers: Request-Context
Cache-Control: private
Content-Encoding: gzip
Content-Type: application/json; charset=utf-8
Date: Mon, 01 Nov 2021 07:35:54 GMT
ntCoent-Length: 561207
Request-Context: appId=cid-v1:699c994c-9aca-4b75-acb9-356556246c7f
Server: Microsoft-IIS/10.0
Transfer-Encoding: chunked
X-Powered-By: ASP.NET
Request Headers
Accept: text/plain, */*; q=0.01
Accept-Encoding: gzip, deflate, br
Accept-Language: ru-RU,ru;q=0.9,en-US;q=0.8,en;q=0.7,lt;q=0.6,de;q=0.5
Cache-Control: no-cache
Connection: keep-alive
Content-Length: 123
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
Cookie: ai_user=KG2Is|2021-10-29T11:50:12.226Z; .AspNet.Cookies=bz7gK0L7lQf5Y3noooafTvXA5avZHCIKt_bRL-MDBjwQtffO-dONkVtbEI1OcgBTfhp3H4jK0gOzRIRBjH-VOur0N1NOeDYPdItU_FZdbxJIhQqaqg3Pfqcwfsfu4lL7eVdNN9m9W1k_V_L6nqT4g87mLb8YCw4qz4gceBBYz848yrg1SmX7wMMAbsQ9Q_1uzd0TwFgDxwWk_ZqRvak65nmi-WXooy5DrjaqcyK10DIjZwDHamsZXV2ddcQdMR0iGpn1J-b9-A-spe0O_JMTsQLCWS84CkSQaLXjqkhJSpnsGCiWeFVnaBWeyBq88a3-mQwCjtJkQdznrDKlbP8VOneEiMUGwXuWltyVSzo8c3qPG3Fq6u4qkyjNdv8boTVZ; ASP.NET_SessionId=xgsinag3sqrglk35virjq40m
Host: site.ru
Origin: https://site.ru
Pragma: no-cache
Referer: https://site.ru
sec-ch-ua: "Chromium";v="92", " Not A;Brand";v="99", "Google Chrome";v="92"
sec-ch-ua-mobile: ?0
Sec-Fetch-Dest: empty
Sec-Fetch-Mode: cors
Sec-Fetch-Site: same-origin
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.131 Safari/537.36
Query String Parameters
appid: y8H3Vuv_nOx1vVR
t: 1635752192
Form Data
{"methodName":"ListLot","withParams":true,"fullDataSet":true,"persistParamSet":false}:
Код скрипта CURL
$array = array(
"methodName"=>"ListLot",
"withParams"=>true,
"fullDataSet"=>true,
"persistParamSet"=>false
);
$curl = curl_init('https://site.ru/DataItemGet');
curl_setopt($curl, CURLOPT_POST, 1);
curl_setopt($curl, CURLOPT_POSTFIELDS, json_encode($array));
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curl, CURLOPT_HEADER, true);
curl_setopt($curl, CURLOPT_HTTPHEADER, array(
"Content-Type: application/x-www-form-urlencoded; charset=UTF-8",
'Cookie: ai_user=KG2Is|2021-10-29T11:50:12.226Z; .AspNet.Cookies=bz7gK0L7lQf5Y3noooafTvXA5avZHCIKt_bRL-MDBjwQtffO-dONkVtbEI1OcgBTfhp3H4jK0gOzRIRBjH-VOur0N1NOeDYPdItU_FZdbxJIhQqaqg3Pfqcwfsfu4lL7eVdNN9m9W1k_V_L6nqT4g87mLb8YCw4qz4gceBBYz848yrg1SmX7wMMAbsQ9Q_1uzd0TwFgDxwWk_ZqRvak65nmi-WXooy5DrjaqcyK10DIjZwDHamsZXV2ddcQdMR0iGpn1J-b9-A-spe0O_JMTsQLCWS84CkSQaLXjqkhJSpnsGCiWeFVnaBWeyBq88a3-mQwCjtJkQdznrDKlbP8VOneEiMUGwXuWltyVSzo8c3qPG3Fq6u4qkyjNdv8boTVZ; ASP.NET_SessionId=xgsinag3sqrglk35virjq40m',
));
$response = curl_exec($curl);
$headerSize = curl_getinfo($curl, CURLINFO_HEADER_SIZE);
$header = substr($response, 0, $headerSize);
$header = headersToArray($header);
$body = substr($response, $headerSize);
$result = json_decode($body);