|
Авторизация и использование cookie в контакте на C#. - Школа Читера - Основы основ - начинаем писать статьи для начинающих с целью создания полноценного раздела |
11.07.2011, 21:01
|
#1
|
|
|
|
Разведчик
|
Регистрация: 26.07.2010
Сообщений: 2
Популярность: -28
Сказал(а) спасибо: 11
Поблагодарили 4 раз(а) в 4 сообщениях
|
Авторизация и использование cookie в контакте на C#.
Итак,хочу написать программу для добавления сообщения на стену на C#
Код:
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;
namespace VK_Auth
{
public partial class Form1 : Form
{
string sid;
Cookie cook;
public Form1()
{
InitializeComponent();
f2 = new Form2();
label1.Text = "Email:";
label1.Font = new Font(label1.Font.FontFamily, 12, FontStyle.Bold);
label2.Text = "Password:";
label2.Font = new Font(label2.Font.FontFamily,12, FontStyle.Bold);
button1.Text = "Login";
}
Form2 f2;
private void button1_Click(object sender, EventArgs e)
{
//создаем запрос
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
f2.Show();
}
}
}
Форма 1 идет авторизация через вк,как я понял куки тут уже получены,мне надо их как то сохранить для использования в форме 2
Код:
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;
namespace VK_Auth
{
public partial class Form2 : Form
{
public Form2()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
// Формируем строку с параметрами
String secondStepForm = "act=post&al=1&facebook_export=&friends_only=&hash=5ecab99058d0d689fe&message=Пример¬e_title=&official=&status_export=&to_id=ЗАСЕКРЕЧЕН))&type=own";
HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://vkontakte.ru/al_wall.php");
// Настраиваем параметры запроса
request.UserAgent = "Opera/9.80";
request.Method = "POST";
// Указываем тип отправляемых данных
request.ContentType = "application/x-www-form-urlencoded";
// Преобразуем данные к соответствующую кодировку
byte[] EncodedPostParams = Encoding.ASCII.GetBytes(secondStepForm);
request.ContentLength = EncodedPostParams.Length;
// Записываем данные в поток
request.GetRequestStream().Write(EncodedPostParams, 0, EncodedPostParams.Length);
request.GetRequestStream().Close();
}
}
}
Форма,тут отправляется post запрос на добавление сообщения,но он не работает так как надо впихать cookie в код. Вот в чем вопрос как из формы 1 сохранить cookie и впихать в форму 2 при отправки сообщения?
P.S если можно сразу исправленый код))
P.SS все коды взял с жука)
|
|
|
13.07.2011, 01:27
|
#2
|
|
|
|
Сержант
|
Регистрация: 20.09.2010
Сообщений: 106
Популярность: 172
Золото Zhyk.Ru: 50
Сказал(а) спасибо: 17
Поблагодарили 82 раз(а) в 50 сообщениях
|
Re: Авторизация и использование cookie в контакте на C#.
передавай в конструктор Form2 параметр cookie и все
|
|
|
Пользователь сказал cпасибо:
|
|
17.07.2011, 19:39
|
#3
|
|
|
|
Разведчик
|
Регистрация: 26.07.2010
Сообщений: 2
Популярность: -28
Сказал(а) спасибо: 11
Поблагодарили 4 раз(а) в 4 сообщениях
|
Re: Авторизация и использование cookie в контакте на C#.
|
|
|
18.07.2011, 03:24
|
#4
|
|
|
|
Сержант
|
Регистрация: 20.09.2010
Сообщений: 106
Популярность: 172
Золото Zhyk.Ru: 50
Сказал(а) спасибо: 17
Поблагодарили 82 раз(а) в 50 сообщениях
|
Re: Авторизация и использование cookie в контакте на C#.
|
Цитата: |
|
|
|
|
|
|
|
|
|
Код:
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;
namespace VK_Auth
{
public partial class Form1 : Form
{
string sid;
Cookie cook;
public Form1()
{
InitializeComponent();
label1.Text = "Email:";
label1.Font = new Font(label1.Font.FontFamily, 12, FontStyle.Bold);
label2.Text = "Password:";
label2.Font = new Font(label2.Font.FontFamily,12, FontStyle.Bold);
button1.Text = "Login";
}
private void button1_Click(object sender, EventArgs e)
{
//создаем запрос
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
{
Form2 f2=new Form2(cook);
f2.Show();
}
}
}
Код:
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;
namespace VK_Auth
{
public partial class Form2 : Form
{
Cookie cook;
public Form2(Cookie c)
{
InitializeComponent();
cook=c;
}
private void button1_Click(object sender, EventArgs e)
{
// Формируем строку с параметрами
String secondStepForm = "act=post&al=1&facebook_export=&friends_only=&hash=5ecab99058d0d689fe&message=Пример¬e_title=&official=&status_export=&to_id=ЗАСЕКРЕЧЕН))&type=own";
HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://vkontakte.ru/al_wall.php");
// Настраиваем параметры запроса
request.UserAgent = "Opera/9.80";
request.Method = "POST";
// Указываем тип отправляемых данных
request.ContentType = "application/x-www-form-urlencoded";
// Преобразуем данные к соответствующую кодировку
byte[] EncodedPostParams = Encoding.ASCII.GetBytes(secondStepForm);
request.ContentLength = EncodedPostParams.Length;
// Записываем данные в поток
request.GetRequestStream().Write(EncodedPostParams, 0, EncodedPostParams.Length);
request.GetRequestStream().Close();
}
}
}
|
|
|
|
|
|
все,дальше в form2 работай с теми куки,которые получил в form1
|
|
|
Пользователь сказал cпасибо:
|
|
19.07.2011, 20:08
|
#5
|
|
|
|
Разведчик
|
Регистрация: 26.07.2010
Сообщений: 2
Популярность: -28
Сказал(а) спасибо: 11
Поблагодарили 4 раз(а) в 4 сообщениях
|
Re: Авторизация и использование cookie в контакте на C#.
|
|
|
20.07.2011, 01:24
|
#6
|
|
|
|
Сержант
|
Регистрация: 20.09.2010
Сообщений: 106
Популярность: 172
Золото Zhyk.Ru: 50
Сказал(а) спасибо: 17
Поблагодарили 82 раз(а) в 50 сообщениях
|
Re: Авторизация и использование cookie в контакте на C#.
Код:
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;
namespace VK_Auth
{
public partial class Form1 : Form
{
string sid;
Cookie cook;
public Form1()
{
InitializeComponent();
label1.Text = "Email:";
label1.Font = new Font(label1.Font.FontFamily, 12, FontStyle.Bold);
label2.Text = "Password:";
label2.Font = new Font(label2.Font.FontFamily,12, FontStyle.Bold);
button1.Text = "Login";
}
private void button1_Click(object sender, EventArgs e)
{
//создаем запрос
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
{
Form2 f2=new Form2(cook);
f2.Show();
}
}
}
Код:
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;
namespace VK_Auth
{
public partial class Form2 : Form
{
CookieContainer cc=new CookieContainer();
Cookie cook;
public Form2(Cookie c)
{
InitializeComponent();
cook=c;
}
private void button1_Click(object sender, EventArgs e)
{
cc.Add(cook);
// Формируем строку с параметрами
String secondStepForm = "act=post&al=1&facebook_export=&friends_only=&hash=5ecab99058d0d689fe&message=Пример¬e_title=&official=&status_export=&to_id=ЗАСЕКРЕЧЕН))&type=own";
HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://vkontakte.ru/al_wall.php");
request.CookieContainer=cc;
// Настраиваем параметры запроса
request.UserAgent = "Opera/9.80";
request.Method = "POST";
// Указываем тип отправляемых данных
request.ContentType = "application/x-www-form-urlencoded";
// Преобразуем данные к соответствующую кодировку
byte[] EncodedPostParams = Encoding.ASCII.GetBytes(secondStepForm);
request.ContentLength = EncodedPostParams.Length;
// Записываем данные в поток
request.GetRequestStream().Write(EncodedPostParams, 0, EncodedPostParams.Length);
request.GetRequestStream().Close();
}
}
}
вот
|
|
|
Пользователь сказал cпасибо:
|
|
21.07.2011, 16:58
|
#7
|
|
|
|
Разведчик
|
Регистрация: 26.07.2010
Сообщений: 2
Популярность: -28
Сказал(а) спасибо: 11
Поблагодарили 4 раз(а) в 4 сообщениях
|
Re: Авторизация и использование cookie в контакте на C#.
Спасибо,попробую.
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Заявление об ответственности / Список мошенников
Часовой пояс GMT +4, время: 12:14.
|
|