Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Создать session_id, В C# 
:(
    Опции темы
Loncaster
Дата 2.11.2006, 23:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 106
Регистрация: 8.8.2006

Репутация: нет
Всего: нет



Вообщем есть некоторая система, написанная на ПХП, в эту систему можно войти, если ввести логин и пароль. При этом через форму также передается session_id ...т.е. идентификатор сессии. Раньше Я писал другой скрипт на пхп, которыя логинится в данную систему и парсит нужную страницу. Теперь Я хочу сделать это напрямую через СиШарп...вот вообще и проблема...нужно черег GET запрос дернуть страницу, передав ей пароль, логин и идентификатор сессии. Как этот идентификатор сгенерировать??
--------------------
Ще не вмерла Україна...
PM MAIL   Вверх
archimed7592
Дата 3.11.2006, 00:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Архимед
****


Профиль
Группа: Завсегдатай
Сообщений: 2531
Регистрация: 12.6.2004
Где: Moscow

Репутация: 7
Всего: 93



ничё генерировать не надо. sess_id генерится на сервере. по идее, если ты живой человек, то ты сначала вбиваешь в адресной строке "http://www.site.org/login.php", а потом уже вводишь данные в форму. дык вот. в момент запроса login.php ты получаешь от сервера sess_id.
делается примерно так:
Код
using System;
using System.Text;
using System.IO;
using System.Net;
using System.Web;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            CookieContainer cc = new CookieContainer ();
            HttpWebRequest request = (HttpWebRequest) WebRequest.Create ("http://www.site.org/login.php");
            request.CookieContainer = cc;
            HttpWebResponse response = (HttpWebResponse) request.GetResponse();
            response.Close ();
            // после этой строки у тебя в куках sess_id

            request = (HttpWebRequest) WebRequest.Create ("http://www.site.org/form.php");
            request.CookieContainer = cc;
            request.Referer = "http://www.site.org/login.php";
            request.ContentType = "application/x-www-form-urlencoded";
            request.Method = WebRequestMethods.Http.Post;

            Encoding e = Encoding.GetEncoding (1251);
            String post =
                "login=" + HttpUtility.UrlEncode(e.GetBytes ("вася")) +
                "&password=" + HttpUtility.UrlEncode(e.GetBytes ("abirvalg"));
            Byte[] p_data = Encoding.ASCII.GetBytes(post);

            using (Stream s = request.GetRequestStream())
                s.Write(p_data, 0, p_data.Length);

            response = (HttpWebResponse) request.GetResponse();
            using (Stream s = response.GetResponseStream ())
            {
                /*
                 * парсим
                 * ...
                 */
            }
            response.Close ();
        }
    }
}



--------------------
If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas.
© George Bernard Shaw
PM Jabber   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема »


 




[ Время генерации скрипта: 0.0601 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.