HttpClient遇到无法获取正确cookie的情况

日期 2018-08-23 C# 作者 叫我蓝火火 共0评论

今天用C#撸正方教务系统的时候,遇到了某个学校的教务系统,没办法获取到正确Cookie的情况。本来正方的Cookie应该是这样的:

ASP.NET_SessionId=abcdefghighlmnopqrstuvwx; 

但是这次拿到的是这么个玩意儿:

safedog-flow-item=ABCDEFGHIGKLMNOPQRSTUVWXYZ123456

去网上搜了一下,safedog-flow是一个服务器的安全防御软件,叫安全狗。
不管怎么设置HttpClient和handler的参数都拿不到ASP.NET开头的那个Cookie,这时候在Cookie的审查元素里看了一眼,那里是两个都有的。
emmmm...感觉事情有了转机。
然后我把Cookie设置成safedog-flow那个,然后发送一个仅获取Header的请求

await httpClient.SendAsync(request, HttpCompletionOption.ResponseHeadersRead);
var cookie = response.Headers.GetValue("Set-Cookie");

欸,惊不惊喜,意不意外。
后面的请求都带后面这个cookie就行,不需要前面的safedog-item,这样就解决掉了安全狗。

如果有错误请告诉我,谢谢各位大佬