Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Проблемы с программным логином на сайт
|
|||
|---|---|---|---|
|
#18+
Нужна ваша помощь, мастера asp. Вот код: static private void LoginToGotDotNetRu() { string siteURL = @"http://www.gotdotnet.ru/";//например string login = "papaP"; string passw = "мой пароль"; // Контейнер для кук, пригодится System.Net.CookieContainer _cookies = new System.Net.CookieContainer(); // Для начала получим с дефолтовой страницы вьюстейт string responseData = GetUrlContent(siteURL, null, ref _cookies, true); // извлекаем вьюстейт и строим запрос string viewState = ExtractViewState(responseData); // Сформируем строку параметров // магические значения параметров берутся из исходного кода страницы (через ViewSource // в браузере) и представляют собой значения атрибутов name (а не id!) //Исправлено 25.04.2005, слово value заменено на name string req = String.Format( @"_ctl0:_ctl0:_ctl0:txtUsername={0}&_ctl0:_ctl0:_ctl0:txtPassword={1}&__VIEWSTATE={2}", System.Web.HttpUtility.UrlEncode(login), System.Web.HttpUtility.UrlEncode(passw), viewState); // и перегоним ее в массив байт byte[] buffer = System.Text.Encoding.GetEncoding(1251).GetBytes(req); string _response = GetUrlContent(siteURL, buffer, ref _cookies, false); // Скинем все полученное в файл using ( StreamWriter sr = new StreamWriter( @"c:\resp.htm", false, System.Text.Encoding.GetEncoding(1251))) { sr.WriteLine(_response); } } static private string GetUrlContent( string url, byte[] paramString, ref CookieContainer cooks, bool useGet) { HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url); req.UserAgent = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; .NET CLR 1.1.4322; .NET CLR 2.0.40607)"; //WebProxy myProxy = new WebProxy(); //myProxy = (WebProxy)req.Proxy; //string proxyAddress = "http://192.168.1.2:3128"; //Uri newUri = new Uri(proxyAddress); //myProxy.Address = newUri; //req.Proxy = myProxy; if (!useGet) { req.Method = "POST"; // укажем серверу, что мы будем передавать параметры req.ContentType = "application/x-www-form-urlencoded"; // добавим наши параметры в запрос using (System.IO.Stream reqst = req.GetRequestStream()) { reqst.Write(paramString, 0, paramString.Length); } // отправляем запрос, получаем ответ string _response; try { req.CookieContainer = cooks; using (System.IO.Stream resst = ((HttpWebResponse)req.GetResponse()).GetResponseStream()) { _response = new StreamReader(resst, Encoding.GetEncoding(1251)).ReadToEnd(); } } catch (Exception ex) { _response = ex.ToString(); } return _response; } static private string ExtractViewState(string content) { System.Text.RegularExpressions.Regex _regex = new System.Text.RegularExpressions.Regex(@"<input[\s\S]+?name=""__VIEWSTATE""[\s\S]+?value=""(?<value>[\s\S]+?)\""[\s\S]*?/>", System.Text.RegularExpressions.RegexOptions.IgnoreCase | System.Text.RegularExpressions.RegexOptions.Compiled); System.Text.RegularExpressions.Match _match = _regex.Match(content); return System.Web.HttpUtility.UrlEncodeUnicode( _match.Success ? _match.Groups["value"].Value : string.Empty); } Однако, после его віполнения, результируящая страница представляет собой ту же страницу логина, только с заполненным полем логин, т.е. как я понимаю просто не происходит программного нажатия на кнопку "вход". Посоветуйте как решить эту проблему. Спасибо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.07.2006, 18:43 |
|
||
|
Проблемы с программным логином на сайт
|
|||
|---|---|---|---|
|
#18+
Находишь в html кнопку логина и в строку @"_ctl0:_ctl0:_ctl0:txtUsername={0}&_ctl0:_ctl0:_ctl0:txtPassword={1}&__VIEWSTATE={2}" подставляешь name_кнопки=value_кнопки Многие вещи нам непонятны не оттого, что наши понятия слабы, а оттого, что данные вещи не входят в круг наших понятий. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.07.2006, 21:08 |
|
||
|
Проблемы с программным логином на сайт
|
|||
|---|---|---|---|
|
#18+
Находишь в html кнопку логина и в строку @"_ctl0:_ctl0:_ctl0:txtUsername={0}&_ctl0:_ctl0:_ctl0:txtPassword={1}&__VIEWSTATE={2}" подставляешь name_кнопки=value_кнопки СПАСИБО!!! Заработало! Еще раз огромное человеческое СПАСИБО!!! )))))С ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.07.2006, 16:28 |
|
||
|
|

start [/forum/topic.php?fid=18&fpage=938&tid=1391920]: |
0ms |
get settings: |
10ms |
get forum list: |
20ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
67ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
42ms |
get tp. blocked users: |
2ms |
| others: | 243ms |
| total: | 408ms |

| 0 / 0 |
