|
C# авторизация в контакте. - Вопросы и ответы, обсуждения - Ваши вопросы по C# только в данном разделе |
26.07.2011, 19:48
|
#1
|
|
|
|
Разведчик
|
Регистрация: 26.07.2010
Сообщений: 2
Популярность: -28
Сказал(а) спасибо: 11
Поблагодарили 4 раз(а) в 4 сообщениях
|
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();
}
}
}
А вот добавление сообщения не могу написать,на форме 2 есть кнопка и поле для ввода при нажатии на кнопку должно отправляться сообщение: пример пользователю id которого написан в поле для ввода.
Тут также надо использовать cookie как их использовать в программе описано здесь.
Помогите пожалуйста, просто я в post запросах не разбираюсь
P.S не надо мне писать как да что делать просто напишите код и если можно коменты.
|
|
|
26.07.2011, 23:40
|
#2
|
|
|
|
Рыцарь-защитник
|
Регистрация: 14.01.2011
Сообщений: 633
Популярность: 28087
Золото Zhyk.Ru: 1
Сказал(а) спасибо: 90
Поблагодарили 717 раз(а) в 374 сообщениях
|
Re: 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();
}
}
}
А вот добавление сообщения не могу написать,на форме 2 есть кнопка и поле для ввода при нажатии на кнопку должно отправляться сообщение: пример пользователю id которого написан в поле для ввода.
Тут также надо использовать cookie как их использовать в программе описано здесь.
Помогите пожалуйста, просто я в post запросах не разбираюсь
P.S не надо мне писать как да что делать просто напишите код и если можно коменты.
|
|
|
|
|
|
ну:
во-первых это не ты написал, а взял готовый код Черино.
во-вторых учи основы
в-третьих ты вообще не разбираешься, а не в пост-запросах
Последний раз редактировалось Hermein; 26.07.2011 в 23:43.
|
|
|
Пользователь сказал cпасибо:
|
|
27.07.2011, 16:19
|
#3
|
|
|
|
Разведчик
|
Регистрация: 26.07.2010
Сообщений: 2
Популярность: -28
Сказал(а) спасибо: 11
Поблагодарили 4 раз(а) в 4 сообщениях
|
Re: C# авторизация в контакте.
|
Цитата: |
|
|
|
|
|
|
|
|
|
ну:
во-первых это не ты написал, а взял готовый код Черино.
во-вторых учи основы
в-третьих ты вообще не разбираешься, а не в пост-запросах
|
|
|
|
|
|
Знаете что:
1. Я не писал что код мой,я его взял отсюда.
2. Я знаю основы
3. Я хорошо знаю GET запросы и разбираюсь в C#
4. И не надо тут хамить.
Последний раз редактировалось maksy; 27.07.2011 в 16:21.
|
|
|
27.07.2011, 17:35
|
#4
|
|
|
|
Разведчик
|
Регистрация: 26.07.2010
Сообщений: 2
Популярность: -28
Сказал(а) спасибо: 11
Поблагодарили 4 раз(а) в 4 сообщениях
|
Re: C# авторизация в контакте.
Последний раз редактировалось maksy; 27.07.2011 в 17:46.
|
|
|
27.07.2011, 18:00
|
#5
|
|
|
|
Пехотинец
|
Регистрация: 05.10.2010
Сообщений: 67
Популярность: -129
Сказал(а) спасибо: 29
Поблагодарили 19 раз(а) в 12 сообщениях
|
Re: C# авторизация в контакте.
напиши мне в скайп StabiliZator9
я те исходник кину там посмотришь как делать!
|
|
|
Пользователь сказал cпасибо:
|
|
28.07.2011, 01:16
|
#6
|
|
|
|
Рыцарь-защитник
|
Регистрация: 14.01.2011
Сообщений: 633
Популярность: 28087
Золото Zhyk.Ru: 1
Сказал(а) спасибо: 90
Поблагодарили 717 раз(а) в 374 сообщениях
|
Re: C# авторизация в контакте.
|
Цитата: |
|
|
|
|
|
|
|
|
|
я же писал как печеньки во вторую форму передать..
|
|
|
|
|
|
Дак уже много раз писали, но если человек не понимает элементарных основ это бесполезно, и, кстати довольно плохой способ передач печенек(нашел на форуме кучу минусов этого способа) лучше через program.cs передавать
итак в program.cs пишем:
Код:
static class Program
{public static string ololo = "";
в форм1:
Код:
private void button1_Click(object sender, EventArgs e)
{
Program.ololo = "ololotrololo";
Form2 form2 = new Form2();
form2.Show();
}
в форм2:
Код:
private void Form2_Load(object sender, EventArgs e)
{
MessageBox.Show(Program.ololo);
}
тоже не очень хороший способ(создание лишних переменных) но все же лучше
Еще существует способ открытия новой формы как дочерней, как следствие из 2 формы имеем доступ ко всем переменным, самый лучший способ, паблик-кода нет, свой приватный, не дам
Последний раз редактировалось Hermein; 28.07.2011 в 01:38.
|
|
|
Пользователь сказал cпасибо:
|
|
28.07.2011, 03:02
|
#7
|
|
|
|
Сержант
|
Регистрация: 20.09.2010
Сообщений: 106
Популярность: 172
Золото Zhyk.Ru: 50
Сказал(а) спасибо: 17
Поблагодарили 82 раз(а) в 50 сообщениях
|
Re: C# авторизация в контакте.
Hermein, хороший способ)
а вообще ведь способов передачи данных между формами много.то уже на любителя,или в зависимости от поставленной задачи
|
|
|
Пользователь сказал cпасибо:
|
|
28.07.2011, 12:57
|
#8
|
|
|
|
Рыцарь-защитник
|
Регистрация: 14.01.2011
Сообщений: 633
Популярность: 28087
Золото Zhyk.Ru: 1
Сказал(а) спасибо: 90
Поблагодарили 717 раз(а) в 374 сообщениях
|
Re: C# авторизация в контакте.
|
|
|
Пользователь сказал cпасибо:
|
|
28.07.2011, 16:53
|
#9
|
|
|
|
Разведчик
|
Регистрация: 26.07.2010
Сообщений: 2
Популярность: -28
Сказал(а) спасибо: 11
Поблагодарили 4 раз(а) в 4 сообщениях
|
Re: C# авторизация в контакте.
|
Цитата: |
|
|
|
|
|
|
|
|
|
Дак уже много раз писали, но если человек не понимает элементарных основ это бесполезно, и, кстати довольно плохой способ передач печенек(нашел на форуме кучу минусов этого способа) лучше через program.cs передавать
итак в program.cs пишем:
Код:
static class Program
{public static string ololo = "";
в форм1:
Код:
private void button1_Click(object sender, EventArgs e)
{
Program.ololo = "ololotrololo";
Form2 form2 = new Form2();
form2.Show();
}
в форм2:
Код:
private void Form2_Load(object sender, EventArgs e)
{
MessageBox.Show(Program.ololo);
}
тоже не очень хороший способ(создание лишних переменных) но все же лучше
Еще существует способ открытия новой формы как дочерней, как следствие из 2 формы имеем доступ ко всем переменным, самый лучший способ, паблик-кода нет, свой приватный, не дам
|
|
|
|
|
|
Вот с public'ом я не мог разобраться.
Добавлено через 4 часа 34 минуты
Я нупь...оказалось зря я вас мучал проблема не в кукисах и не в программе,а просто в хеше контакта,всем спасибо))
________________
Все были новичками,но не все были нубами.
Последний раз редактировалось maksy; 28.07.2011 в 21:28.
Причина: Добавлено сообщение
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Заявление об ответственности / Список мошенников
Часовой пояс GMT +4, время: 17:09.
|
|