相关疑难解决方法(0)

登录使用Live.com身份验证的站点

我一直在尝试自动登录我经常访问的网站www.bungie.net.该站点与Microsoft和Xbox Live相关联,因此在人们登录其站点时使用Windows Live ID API.

我对创建网络蜘蛛/机器人比较陌生,我担心我会误解一些最基本的概念.我已经模拟登录到其他网站,如Facebook和Gmail,但live.com给了我一些麻烦.

无论如何,我一直在使用Wireshark和Firefox插件篡改数据来试图弄清楚我需要发布什么,以及我需要包含哪些我的请求.据我所知,这些是登录此站点必须遵循的步骤.

1.访问HTTPS://login.live.com/login.srf?wa=wsignin1.0&rpsnv=11&ct=1268167141&rver=5.5.4177.0&wp=LBI&wreply=http:%2F%2Fwww.bungie.net%2FDefault.aspx&id=42917

2.收到MSPRequ和MSPOK的cookies.

3.将表单ID"PPSX"中的值,表单ID"PPFT"中的值,您的用户名,密码全部发布到更改的URL,类似于:https://login.live.com/ppsecure/post. srf?wa = wsignin1.0&rpsnv = 11&ct =(在该URL的末尾有一些数字会发生变化)

4. Live.com向用户返回一个包含更多隐藏表单的页面.然后,客户端从表单"ANON"的帖子的值,从表"ANONExp"的值,并从表"T"的URL的值:HTTP://www.bung ie.net/Default.aspx?wa = wsignin1.0

5.在发布该数据之后,向用户返回各种cookie,其中最重要的是"BNGAuth",即该站点的登录cookie.

我遇到麻烦的地方是第五步,但这并不意味着我已经正确完成了所有其他步骤.我发布了来自"ANON","ANONExp"和"t"的数据,但我没有返回一个BNGAuth cookie,而是返回了一个名为"RSPMaybe"的cookie并重定向到主页.

当我查看Wireshark日志时,我注意到当我使用Firefox登录时以及我的程序运行时,日志与我之间的不同之处.它可能没什么但我会在这里附上图片供你查看.在第四步发布数据之前,我正从网站返回一个HTTP数据包.我不确定这是怎么回事,但它必须是我在HTTPS步骤中做错的一个副作用.

using System;
using System.Collections.Generic;
using System.Collections.Specialized;
using System.Text;
using System.Net;
using System.IO;
using System.IO.Compression;
using System.Security.Cryptography;
using System.Security.Cryptography.X509Certificates;
using System.Web;

namespace SpiderFromScratch
{
    class Program
    {   
        static void Main(string[] args)
        {
            CookieContainer cookies = new CookieContainer();
            Uri url = new Uri("https://login.live.com/login.srf?wa=wsignin1.0&rpsnv=11&ct=1268167141&rver=5.5.4177.0&wp=LBI&wreply=http:%2F%2Fwww.bungie.net%2FDefault.aspx&id=42917");
            HttpWebRequest http = (HttpWebRequest)HttpWebRequest.Create(url);

            http.Timeout = 30000;
            http.UserAgent …
Run Code Online (Sandbox Code Playgroud)

c# authentication https http

12
推荐指数
1
解决办法
7322
查看次数

标签 统计

authentication ×1

c# ×1

http ×1

https ×1