Форум   Статьи   Новости   Файлы   Bugtraq   Сниффер   Друзья   О Клубе
Вернуться   HPC / Кодинг / .NET / C#
   
  Страница 1
  , 16:10   #1
Местный
 
Аватар для UnikoN
 
Регистрация: 19.04.2009
Сообщений: 100

Репутация: 2 / 0
По умолчанию Авторизация вконтакте

Может кто подсказать, как авторизоваться? Допустим создал форму, в ней ввел логин с паролем и как сделать так, что бы открылся браузер и страничка была уже авторизована?
 
Пользователь вне форума    
Наши Спонсоры
  , 16:29   #2
Продвинутый
 
Аватар для BlackH
 
Локация: underworld
Регистрация: 05.12.2011
Сообщений: 1,608

Репутация: 167 / 3
По умолчанию

сниффером посмотри что отправляется при авторизации и повтори все запросы в своей проге.
__________________
Вангую..
Пользователь вне форума    
  , 21:42   #3
Постоянный
 
Аватар для stix666
 
Локация: Earth
Регистрация: 16.07.2011
Сообщений: 810

Репутация: 15 / 1
По умолчанию

главное что б прога куки сохранила
__________________
Вернулся
Пользователь вне форума    
  , 14:06   #4
Новичок
 
Регистрация: 03.06.2012
Сообщений: 3

Репутация: 0 / 0
По умолчанию

просто сохрани пароль в браузере, и куки все сделает.
 
Пользователь вне форума    
  , 19:15   #5
Новичок
 
Регистрация: 07.03.2011
Сообщений: 4

Репутация: 0 / 0
По умолчанию

C# highlight
public void parcer()
        {
            string html = GET_http("http://m.vk.com/");
            HtmlAgilityPack.HtmlDocument doc = new HtmlAgilityPack.HtmlDocument();
            doc.LoadHtml(html);
            HtmlNode bodyNode = doc.DocumentNode.SelectSingleNode("//div[@class='cont']/form");
            string act_url = (bodyNode.Attributes["action"].Value);

            string login = textBox1.Text;
            string pass = textBox2.Text;
            string data = "email=" + login + "&pass=" + pass;
            string result = http_post(act_url, data);

            try
            {
                doc.LoadHtml(result);
                HtmlNode IDNode = doc.DocumentNode.SelectSingleNode("//a[@class='user']");
                string id = IDNode.Attributes["href"].Value;
                MessageBox.Show("Авторизировался!");
ну и сами запросы get и post
C# highlight
public string GET_http(string url)
        {
            System.Net.ServicePointManager.ServerCertificateValidationCallback = delegate { return true; };
            System.Net.WebRequest reqGET = System.Net.WebRequest.Create(url);
            System.Net.WebResponse resp = reqGET.GetResponse();
            System.IO.Stream stream = resp.GetResponseStream();
            System.IO.StreamReader sr = new System.IO.StreamReader(stream);
            string html = sr.ReadToEnd();
            return html;
        }

        public string http_post(string url, string data)
        {
            var cookies = new CookieContainer();
            ServicePointManager.Expect100Continue = false;

            var request = (HttpWebRequest)WebRequest.Create(url);
            request.CookieContainer = cookies;
            request.Method = "POST";
            request.ContentType = "application/x-www-form-urlencoded";
            using (var requestStream = request.GetRequestStream())
            using (var writer = new StreamWriter(requestStream))
            {
                writer.Write(data);
            }

            using (var responseStream = request.GetResponse().GetResponseStream())
            using (var reader = new StreamReader(responseStream))
            {
                var result = reader.ReadToEnd();
                return result;
            }
        }
А так же потребуется библиотека Html Agility Pack
и системные библиотеки Net, IO.
 
Пользователь вне форума    
  , 02:18   #6
Новичок
 
Локация: Ukraine
Регистрация: 03.09.2012
Сообщений: 2

Репутация: 0 / 0
По умолчанию

Цитата:
Сообщение от UnikoN Посмотреть сообщение
Может кто подсказать, как авторизоваться? Допустим создал форму, в ней ввел логин с паролем и как сделать так, что бы открылся браузер и страничка была уже авторизована?
Религия не позволяет использовать OAuth?
 
Пользователь вне форума    
  , 14:47   #7
Новичок
 
Регистрация: 18.06.2012
Сообщений: 13

Репутация: 0 / 0
По умолчанию

Ты можешь сделать это проще. Ctrl+C Ctrl+V. Через компонент браузера. Как вариант.
 
Пользователь вне форума    
  , 00:20   #8
Новичок
 
Регистрация: 03.12.2014
Сообщений: 3

Репутация: 0 / 0
По умолчанию

С использованием xNet:

C# highlight
using System;
using System.Windows.Forms;
using xNet.Net;
using System.Text.RegularExpressions;

namespace WindowsFormsApplication4
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        CookieDictionary _cookie = new CookieDictionary();
        private void button1_Click(object sender, EventArgs e)
        {
            using (HttpRequest request = new HttpRequest())
            {
                request.Cookies = _cookie;
                request.UserAgent = HttpHelper.RandomUserAgent();

                var result = request.Get("https://vk.com/").ToText();
                string ip_h = GetIPH(result);
                string param = string.Format("_origin=http://vk.com&act=login&email={0}&ip_h={1}&pass={2}&role=al_frame",
                    textBox1.Text, ip_h, textBox2.Text);

                result = request.Post("https://login.vk.com/?act=login", param).ToText();

                if (result.Contains("parent.onLoginCaptcha"))
                {
                    MessageBox.Show("Каптча!", "c:");
                }
                else if (result.Contains("parent.onLoginFailed"))
                {
                    MessageBox.Show("Не авторизовались!");
                }
                else MessageBox.Show("Авторизовались!");
                
            }

        }

        private string GetIPH(string text)
        {
            string pattern = @"ip_h=(.{18})";
            Regex regex = new Regex(pattern);
            Match match = regex.Match(text);

            string res = "";

            while (match.Success)
            {
                res = match.Groups[1].Value;
                break;
            }

            return res;
        }
    }
}
 
Пользователь вне форума    
  , 16:17   #9
Новичок
 
Регистрация: 19.04.2014
Сообщений: 11

Репутация: 0 / 0
По умолчанию

Цитата:
Сообщение от nday Посмотреть сообщение
Религия не позволяет использовать OAuth?
БОЖЕ,ХАХАХАХАХАХХА
 
Пользователь вне форума    
  , 16:35   #10
Грррр!
 
Аватар для _Werewolf_
 
Локация: upd://192.168.255.255
Регистрация: 28.06.2011
Сообщений: 3,296

Репутация: 294 / 5
По умолчанию

Может на дату посмотрите? Ну так, ради прикола хотя бы, например увидеть что ТС даже не прочитает ваши посты...
Конечно, сейчас у ВК удобный API, но в 2012-ом году...
__________________
Жили были Ох и Ах. Все им было пох и нах...
Хорошие люди принесут вам счастье, плохие люди наградят вас опытом, худшие – дадут вам урок, а лучшие – подарят воспоминания. Цените каждого.
Пользователь вне форума    
  , 20:40   #11
Сатанизм
 
Аватар для ZoRKeG
 
Локация: Dublin
Регистрация: 05.08.2011
Сообщений: 1,764

Репутация: 254 / 4
По умолчанию

По сабжу, если кому-то нужна авторизация в ВК - пишите в лс
p.s. only php
 
Пользователь вне форума    
  , 02:59   #12
Новичок
 
Регистрация: 08.08.2015
Сообщений: 3

Репутация: 0 / 0
По умолчанию

Если умеешь пользоваться библиотекой xNet, то дерзай)
вот тебе мой метод(предусмотрено: 1)акк забанен 2)капча(у меня это отдельный класс(добавь картинку в ImgBox)
3)Неверные данные 4)хорошая авторизация
source:
 private CookieDictionary VkCookies(string Login, string Pass, string proxy)
        {

            CookieDictionary ReturnCookies = new CookieDictionary(false);
            var UA = HttpHelper.ChromeUserAgent();
            string Captcha_sid = "";
            string Captcha_key = "";
            string HtmlAnswer = "";             //name="ip_h" value="
            string LinkAnswer = "";
            using (var getEnter = new HttpRequest())
            {
                getEnter.Cookies = ReturnCookies;
                getEnter.UserAgent = UA;
                string Params = getEnter.Get("http://m.vk.com/").ToString().Substring("m.vk.com&", "role");
                string ip_h = Params.Substring("ip_h=", "&");
                string lg_h = Params.Substring("lg_h=", "&");
                for (bool noCapcha = false; noCapcha == false; )
                {
                    getEnter.Cookies = ReturnCookies;
                    getEnter.UserAgent = UA;
                    Captcha_sid = LinkAnswer.Substring("sid=", "&");
                    getEnter.AddParam("email", Login).AddParam("pass", Pass); try
                    {
                        HttpResponse resp = getEnter.Post("http://login.vk.com/?act=login&_origin=http://m.vk.com&ip_h=" + ip_h + "&lg_h=" + lg_h + "&role=pda&utf8=1");
                        LinkAnswer = resp.Address.ToString();
                        HtmlAnswer = resp.ToString();
                    }
                    catch
                    {
                        return null;
                    }
                    Captcha_sid = LinkAnswer.Substring("sid=", "&");
                    if (Captcha_sid != "")
                    {
                        try
                        {
                            byte[] bmpData = new WebClient().DownloadData("http://vk.com/captcha.php?sid=" + Captcha_sid);
                            using (MemoryStream ms = new MemoryStream(bmpData))
                            {
                                Bitmap bmp = (Bitmap)Bitmap.FromStream(ms);
                                HelpClass HC = new HelpClass();
                                Captcha_key = HC.Captcha(bmp);
                            }
                        }
                        catch
                        {
                        }
                        getEnter.AddParam("captcha_key", Captcha_key).AddParam("captcha_sid", Captcha_sid);
                    }
                    else
                    {
                        noCapcha = true;
                    }
                }
                if (LinkAnswer.IndexOf("blocked") != -1)
                {
                    return null;
                }
                if (LinkAnswer.IndexOf("email") != -1)
                {
                    return null;
                }
                if (LinkAnswer.IndexOf("security_check") != -1)
                {
                    string[] FragAll = HtmlAnswer.Substrings("<span class=\"field_prefix\">", "</span>");
                    string FragA = "";
                    string FragB = "";
                    Regex pars = new Regex(@"[0-9]");
                    {
                        Match elem = pars.Match(FragAll[0]);
                        while (elem.Success)
                        {
                            FragA += elem.Value;
                            elem = elem.NextMatch();
                        }
                    }
                    {
                        Match elem = pars.Match(FragAll[1]);
                        while (elem.Success)
                        {
                            FragB += elem.Value;
                            elem = elem.NextMatch();
                        }
                    }

                    string Code = Login.Substring(FragA, FragB);
                    string Hash = HtmlAnswer.Substring("security_check&to=&hash=", "\"");
                    using (var PostPhone = new HttpRequest())
                    {
                        PostPhone.UserAgent = UA;
                        PostPhone.Cookies = ReturnCookies;
                        PostPhone.AddParam("al", "1").AddParam("al_page", "3").AddParam("code", Code).AddParam("hash", Hash).AddParam("to", "");
                        string ResponsePost = PostPhone.Post("https://vk.com/login.php?act=security_check").ToString();
                        if (ResponsePost.IndexOf("К сожалению, цифры указаны неверно.") != -1)
                        {
                            return null;
                        }
                    }
                }
                if (ReturnCookies.ToString().IndexOf("sid") != -1)
                {
                    return ReturnCookies;
                }
            }
            return null;
        }
 
Пользователь вне форума    
  , 07:53   #13
Постоянный
 
Аватар для softkom
 
Локация: На берегу Белого моря
Регистрация: 10.11.2009
Сообщений: 715

Репутация: 123 / 2
Cool

Цитата:
Сообщение от trix1337 Посмотреть сообщение
Если умеешь пользоваться библиотекой xNet, то дерзай)
вот тебе мой метод(предусмотрено: 1)акк забанен 2)капча(у меня это отдельный класс(добавь картинку в ImgBox)
3)Неверные данные 4)хорошая авторизация
source:
 private CookieDictionary VkCookies(string Login, string Pass, string proxy)
        {

            CookieDictionary ReturnCookies = new CookieDictionary(false);
            var UA = HttpHelper.ChromeUserAgent();
            string Captcha_sid = "";
            string Captcha_key = "";
            string HtmlAnswer = "";             //name="ip_h" value="
            string LinkAnswer = "";
            using (var getEnter = new HttpRequest())
            {
                getEnter.Cookies = ReturnCookies;
                getEnter.UserAgent = UA;
                string Params = getEnter.Get("http://m.vk.com/").ToString().Substring("m.vk.com&", "role");
                string ip_h = Params.Substring("ip_h=", "&");
                string lg_h = Params.Substring("lg_h=", "&");
                for (bool noCapcha = false; noCapcha == false; )
                {
                    getEnter.Cookies = ReturnCookies;
                    getEnter.UserAgent = UA;
                    Captcha_sid = LinkAnswer.Substring("sid=", "&");
                    getEnter.AddParam("email", Login).AddParam("pass", Pass); try
                    {
                        HttpResponse resp = getEnter.Post("http://login.vk.com/?act=login&_origin=http://m.vk.com&ip_h=" + ip_h + "&lg_h=" + lg_h + "&role=pda&utf8=1");
                        LinkAnswer = resp.Address.ToString();
                        HtmlAnswer = resp.ToString();
                    }
                    catch
                    {
                        return null;
                    }
                    Captcha_sid = LinkAnswer.Substring("sid=", "&");
                    if (Captcha_sid != "")
                    {
                        try
                        {
                            byte[] bmpData = new WebClient().DownloadData("http://vk.com/captcha.php?sid=" + Captcha_sid);
                            using (MemoryStream ms = new MemoryStream(bmpData))
                            {
                                Bitmap bmp = (Bitmap)Bitmap.FromStream(ms);
                                HelpClass HC = new HelpClass();
                                Captcha_key = HC.Captcha(bmp);
                            }
                        }
                        catch
                        {
                        }
                        getEnter.AddParam("captcha_key", Captcha_key).AddParam("captcha_sid", Captcha_sid);
                    }
                    else
                    {
                        noCapcha = true;
                    }
                }
                if (LinkAnswer.IndexOf("blocked") != -1)
                {
                    return null;
                }
                if (LinkAnswer.IndexOf("email") != -1)
                {
                    return null;
                }
                if (LinkAnswer.IndexOf("security_check") != -1)
                {
                    string[] FragAll = HtmlAnswer.Substrings("<span class=\"field_prefix\">", "</span>");
                    string FragA = "";
                    string FragB = "";
                    Regex pars = new Regex(@"[0-9]");
                    {
                        Match elem = pars.Match(FragAll[0]);
                        while (elem.Success)
                        {
                            FragA += elem.Value;
                            elem = elem.NextMatch();
                        }
                    }
                    {
                        Match elem = pars.Match(FragAll[1]);
                        while (elem.Success)
                        {
                            FragB += elem.Value;
                            elem = elem.NextMatch();
                        }
                    }

                    string Code = Login.Substring(FragA, FragB);
                    string Hash = HtmlAnswer.Substring("security_check&to=&hash=", "\"");
                    using (var PostPhone = new HttpRequest())
                    {
                        PostPhone.UserAgent = UA;
                        PostPhone.Cookies = ReturnCookies;
                        PostPhone.AddParam("al", "1").AddParam("al_page", "3").AddParam("code", Code).AddParam("hash", Hash).AddParam("to", "");
                        string ResponsePost = PostPhone.Post("https://vk.com/login.php?act=security_check").ToString();
                        if (ResponsePost.IndexOf("К сожалению, цифры указаны неверно.") != -1)
                        {
                            return null;
                        }
                    }
                }
                if (ReturnCookies.ToString().IndexOf("sid") != -1)
                {
                    return ReturnCookies;
                }
            }
            return null;
        }


Ты дату последнего поста видел? АРХЕОЛОГ
__________________
Хочу Delete Мир!
---------------------------------------------------------------------------
Пользователь вне форума    
 

 

Часовой пояс GMT +2
Powered by vBulletin® 3.x.x Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.

Copyright © 2008 - 2013 «HPC» Реклама на сайте Правила Форума Пользовательское соглашение Работа на сайте
При копировании материалов ставьте ссылку на источник
Все материалы представлены только в ознакомительных целях, администрация за их использование ответственности не несет.