2014-10-16 2 views
0

Я работаю над этой проблемой в течение последних нескольких дней и, наконец, добился определенного прогресса. Сегодня мне удалось заставить файл cookie выполнить запрос, и сервер, наконец, аутентифицировал запрос, однако Я не могу обновить файлы cookie и передать проверенные файлы cookie на следующие несколько страниц.Файлы cookie обновления VB.NET от POST

'post form data to page 
    strUrl = "https://e926.net/user/authenticate" 
    webRequest2 = HttpWebRequest.Create(strUrl) 
    webRequest2.UserAgent = "Mozilla/5.0 (Windows; U; Windows NT 6.1; ru; rv:1.9.2.3) Gecko/20100401 Firefox/4.0 (.NET CLR 3.5.30729)" 
    webRequest2.AllowAutoRedirect = True 
    webRequest2.Method = WebRequestMethods.Http.Post 
    webRequest2.ContentType = "application/x-www-form-urlencoded" 
    webRequest2.CookieContainer = cookies 
    webRequest2.ContentLength = postData.Length 

    requestWriter = New StreamWriter(webRequest2.GetRequestStream) 
    requestWriter.Write(postData) 
    requestWriter.Close() 


    Dim response2 As HttpWebResponse = CType(webRequest2.GetResponse(), HttpWebResponse) 
    Dim strCookies2 As String = response2.Headers("Set-Cookie") 
    MsgBox(strCookies2) 
    strCookies2 = System.Text.RegularExpressions.Regex.Split(strCookies2, "((e926=.*))")(1) 
    strCookies2 = strCookies2.Split(";")(0) 
    strCookies2 = strCookies2.Replace("e926=", "") 

    cookie.Name = "e926" 
    cookie.Value = strCookies2 
    cookie.Domain = ".e926.net" 
    cookie.HttpOnly = True 
    cookie.Path = "/" 
    cookies.Add(cookie) 


    'recieve authenticated cookie 
    webRequest2.GetResponse().Close() 

Это код страницы, который фактически отправляет данные для входа и сделок с реальным запросом авторизации, я могу видеть в Fiddler, что печенье «пользователь» отправляется и «e926/Auth» печенье обновляется, но я не смог получить обновленные файлы cookie из заголовков или любого другого метода, который я пробовал.

Страница является PHP и не разрешает запросы «GET», и, конечно же, это не поможет, так как файлы cookie никогда не передаются должным образом, и файлы cookie должны быть обновлены из запроса.

Так что мой вопрос: как получить обновленные файлы cookie со страницы в VB.NET?

ответ

0

Все, что мне нужно было сделать, это изменить «авто-перенаправление» с «истины» на «ложь», и это вынудило файлы cookie собираться с страницы «auth», а не на «домашнюю страницу».