Авторизация вконтакте(c#)

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by langust, 28 Jan 2012.

  1. langust

    langust New Member

    Joined:
    15 Dec 2011
    Messages:
    4
    Likes Received:
    0
    Reputations:
    0
    Короче я написал бот для тюряги и мне нужно сделать получение ид/ауз через логин и пароль.
    Я спрашивал у многих людей на многих форумах и мне подсказали всего два варианта.
    1.Авторизация
    2.Сохранение кукисов через кукисконтейнер
    3.В ответе парсинг ид/ауз

    Второй вариант:
    1.авторизовался
    2.в ответе куки
    3.сохранил.
    4.подписал в хедер
    5.и шлеш запросы какие надо (пакеты смотри через чарли)


    Помогите реализовать это дейсвие.Если не по этим способам то какой-то свой.Но очень нужна эта функция.(Бот делаю для себя)
     
  2. realcoder

    realcoder Member

    Joined:
    9 Dec 2010
    Messages:
    226
    Likes Received:
    11
    Reputations:
    4
    они засвечиваются в жабаскриптах, используемых на странице приложения тюряга.
    логинишься, делаешь get-запрос на страницу с приложением и выпарсиваешь аутх-кей регуляркой /(auth_key\":\".*\",\"l)/ (ну или просто через string.substring, string.erase, string.indexof и т.п.).
    ид вообще где только можно присутствует, с ним не должно быть проблем
     
  3. langust

    langust New Member

    Joined:
    15 Dec 2011
    Messages:
    4
    Likes Received:
    0
    Reputations:
    0
    Если я обычно авторизуюсь а потом зайду в тюрягу и буду парсить то ничего не получится так как входящий пакет не прийдет тюряжный.Это будет одинаково если ты попытаешся зайти в тюрягу не зайдя в вк.
     
  4. realcoder

    realcoder Member

    Joined:
    9 Dec 2010
    Messages:
    226
    Likes Received:
    11
    Reputations:
    4
    ты cookiecontainer прикрути к классу запроса
     
  5. wwalex101

    wwalex101 New Member

    Joined:
    24 Mar 2009
    Messages:
    67
    Likes Received:
    4
    Reputations:
    1
    ты к серверу тюряги обращаешся через сервер вконтатке? если да то зачем? я делал запросы напрямую к серверу через гет-пост запросы, в теле запроса был как раз таки и ид-кей, проблемы особой нет просто напрямую к серверу обращайся!
     
  6. langust

    langust New Member

    Joined:
    15 Dec 2011
    Messages:
    4
    Likes Received:
    0
    Reputations:
    0
    фуух,напрямую к серверу тюряги обращатся нефиг делать через ид/ауз-кей .Мне нужно,чтоб в программе при вводе логина и пароля от вк я получал ид/ауз-кей для тюряги.
     
  7. langust

    langust New Member

    Joined:
    15 Dec 2011
    Messages:
    4
    Likes Received:
    0
    Reputations:
    0
    Я это знаю,пробывал,но ничего не выходит
     
  8. Nyter

    Nyter Member

    Joined:
    30 Aug 2009
    Messages:
    3
    Likes Received:
    6
    Reputations:
    0
    не совсем в тему, но по сабжу...
    Нашёл следующий код авторизации на С#
    PHP:
    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Windows.Forms;
    using System.Net;
    using System.IO;
    using System.Text.RegularExpressions;

    namespace 
    WindowsFormsApplication7
    {
        public 
    partial class Form1 Form
        
    {
            
    string sid;
            
    Cookie cook;
           
            public 
    Form1()
            {
                
    InitializeComponent();
            }

            private 
    void button1_Click(object senderEventArgs e)
            {
                
    //создаем запрос
                
    HttpWebRequest wrGETURL = (HttpWebRequest)System.Net.WebRequest.Create("http://vk.com/login.php?m=1&email=" textBox1.Text "&pass=" textBox2.Text);
                
    //выставляем значения Headers
                //Запрещаем редирект
                
    wrGETURL.AllowAutoRedirect false;
                
    //Выставляем таймаут
                
    wrGETURL.Timeout 100000;
                
    //получаем Headers,пришедшие в ответе
                
    string headers wrGETURL.GetResponse().Headers.ToString();
                
    //получаем весь ответ
                
    HttpWebResponse myHttpWebResponse = (HttpWebResponse)wrGETURL.GetResponse();
                
    //записываем ответ в поток
                
    StreamReader myStreamReadermy = new StreamReader(myHttpWebResponse.GetResponseStream(), Encoding.GetEncoding(1251));
                
    //запихиваем ответ в строку
                
    string page myStreamReadermy.ReadToEnd();
                
    //это регулярное выражение,которое выдирает из переменной headers(а ее мы получили выше) значение sid
                
    Regex sidregex = new Regex("sid=([a-z0-9]+); exp");
                
    Match ssid sidregex.Match(headers);
                
    sid ssid.Groups[1].Value;
                
    //инициализируем куки
                
    cook = new Cookie("remixsid"sid);
                
    //тоже самое,куки пишем
                
    cook.Domain "vk.com";
                
    //проверяем,получили ли мы нужную переменную в куки
                
    if (String.IsNullOrEmpty(sid))
                    
    MessageBox.Show("Чето не получается авторизироваться");
                else
                    
    MessageBox.Show("Успешно авторизировались");
            }

            private 
    void textBox1_TextChanged(object senderEventArgs e)
            {

            }


        }
    }
    При авторизации ( с любыми данными ) пишет "Успешно авторизировались".
    Мб кто подскажет, что нужно поправить что бы заработало? :)
     
  9. realcoder

    realcoder Member

    Joined:
    9 Dec 2010
    Messages:
    226
    Likes Received:
    11
    Reputations:
    4
    отладчик и httpanalyzer тебе в помощь
     
  10. langust

    langust New Member

    Joined:
    15 Dec 2011
    Messages:
    4
    Likes Received:
    0
    Reputations:
    0
    это старая авторизация.Сейчас все новое.