vbulletin Http login

本文关键字:login Http vbulletin | 更新日期: 2023-09-27 18:26:30

因此,我正在为vbulleting网站制作一个小型应用程序,但当用户打开我的应用程序时,需要对其进行身份验证,我有发送登录请求的代码,但我不确定如何实际检查登录是否成功。

这就是我目前所拥有的:

 public string Login(string username, string password)
    {
        HttpWebRequest req = (HttpWebRequest)WebRequest.Create(MPGHLogin);
        string cookie = "";
        string values = "vb_login_username=" + username + "&vb_login_password=" + password
                        + "&securitytoken=guest&"
                        + "cookieuser=checked&"
                        + "do=login";
        req.Method = "POST";
        req.ContentType = "application/x-www-form-urlencoded";
        req.ContentLength = values.Length;
        CookieContainer a = new CookieContainer();
        req.CookieContainer = a;
        System.Net.ServicePointManager.Expect100Continue = false;
        using (StreamWriter writer = new StreamWriter(req.GetRequestStream(), System.Text.Encoding.ASCII))
        {
            writer.Write(values);
        }
        HttpWebResponse c = (HttpWebResponse)req.GetResponse();
        foreach (Cookie cook in c.Cookies)
        {
            cookie = cookie + cook.ToString() + ";";
        }

        if (c.StatusCode != HttpStatusCode.OK)
            return "FAILED_CONNECTION";
        return cookie;
    }

但是,如何检查身份验证是否成功?

vbulletin Http login

对于其他可能有同样问题的人,我完全忘记了检查登录成功消息的响应流,所以下面是完整的代码

 HttpWebRequest req = (HttpWebRequest)WebRequest.Create(MPGHLogin);
                req.AllowAutoRedirect = true;
                string cookie = "";
                string values = "vb_login_username=" + username + "&vb_login_password=" + password
                                + "&securitytoken=guest&"
                                + "cookieuser=checked&"
                                + "do=login";
                req.Method = "POST";
                req.ContentType = "application/x-www-form-urlencoded";
                req.ContentLength = values.Length;
                CookieContainer a = new CookieContainer();
                req.CookieContainer = a;
                System.Net.ServicePointManager.Expect100Continue = false;
                StreamWriter writer = new StreamWriter(req.GetRequestStream(), System.Text.Encoding.ASCII);
                writer.Write(values);
                writer.Close();
                req.Timeout = 5000;
                HttpWebResponse c;
                try {
                    c = (HttpWebResponse)req.GetResponse(); // da response 
                } catch(Exception e)
                {
                    MessageBox.Show(e.Message, "Web Exception");
                    return "WebException";
                }
                foreach (Cookie cook in c.Cookies)
                {
                    cookie = cookie + cook.ToString() + ";";
                }
                Stream resp = c.GetResponseStream();
                StreamReader reader = new StreamReader(resp, Encoding.GetEncoding(c.CharacterSet));
                string response = reader.ReadToEnd();
                reader.Close();
                reader.Dispose();
                if (response.Contains("Thank you for logging in, " + username))
                {
                    c.Dispose();
                    return cookie;
                }
                else
                    return "FAILED_AUTH";