Авторизация [В]Контакте на C#

Тема в разделе "Программирование", создана пользователем Бека Алыбаев, 2 дек 2014.

  1. Оффлайн

    Бека Алыбаев System32

    На форуме с:
    28 янв 2013
    Сообщения:
    186
    Симпатии:
    74
    Баллы:
    30
    Пол:
    Мужской
    Данный гайд будет посвящен описанию авторизации Вконтакте программным способом.
    Что потребуется для гайда:
    * Microsoft Visual Studio 2010(в данном гайде я использовал именно ее,хотя можно и более ранние версии)
    * Начальные знания программирования
    * Прямые руки
    * Желание к обучению
    Последовательность действий:
    1. Создаем проект и кидаем на него textbox(2),label(2),button
    # Переходим в окно редактирования кода(нажимаем F7)
    # В конструкторе класса(это там,где строчка InitializeComponents()),пишем следующее:
    InitializeComponent();
    PHP:
    label1.Text "Email:";
    label1.Font = new Font(label1.Font.FontFamily12FontStyle.Bold);
    label2.Text "Password:";
    label2.Font = new Font(label2.Font.FontFamily,12FontStyle.Bold);
    button1.Text "Login";


    # Далее переходим опять в дизайнер приложения,и вешаем обработчик события нажатия мыши на кнопку(кливаем по кнопке 2 раза)
    # Мы очутились в редакторе кода события клики мыши на кнопке
    Давайте теперь подключим недостающие пространства имен(неймспейсы)
    PHP:
    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Text;
    using System.Windows.Forms;
    using System.Net;
    using System.IO;
    using System.Text.RegularExpressions;
    Теперь перед конструктором обьявим переменные,которые нам понадобятся
    PHP:
    string sid;
    Cookie cook;
    И добавим в наш обработчик события самый главный код
    PHP:
    //создаем запрос
    HttpWebRequest wrGETURL = (HttpWebRequest)System.Net.WebRequest.Create("http ://vkontakte.ru/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 "vkontakte.ru";
    //проверяем,получили ли мы нужную переменную в куки
    if (String.IsNullOrEmpty(sid))
    MessageBox.Show("Чето не получается авторизироваться");
    else
    MessageBox.Show("Успешно авторизировались");
    Если все сделали правильно,ввели правильные данные,то мы успешно авторизируемся Вконтакте.
     
    Petrovich™ и DiMoN_Gandon нравится это.
  2.  
  3. Оффлайн

    DiMoN_Gandon ст. рядовой

    На форуме с:
    8 окт 2014
    Сообщения:
    8
    Симпатии:
    3
    Баллы:
    2
    Пол:
    Мужской
    Спасибо!
    С меня лайк)
     
    Petrovich™ и Бека Алыбаев нравится это.

Поделиться этой страницей

Уважаемый пользователь!

Мы обнаружили, что вы блокируете показ рекламы на нашем сайте.

Просим внести его в список исключения или отключить AdBlock.

Наши материалы предоставляются БЕСПЛАТНО и единственным доходом является реклама.

Спасибо за понимание!