좋아요, 스택 오버플로를 살펴 봤는데 100 %가 내가 가진 문제에 대한 답변을 찾지 못했습니다. 현재 알려진 사이트에 대한 자동 로그인을하고 있습니다. e926.net과 그들이 로그인을 처리하는 방법에 문제가 있습니다.HTTPWebRequest의 VB.NET 쿠키
업데이트 된 질문 : (https://stackoverflow.com/questions/26200801/httpwebrequest-cookies-and-authorization-tokens) 참고 :이 질문에 대한 중요한 정보는 아직 있습니다.
는 지금은이 코드를 사용하고 있습니다 : 그것은 코드가 발견하고 내가 불행하게도 링크를 잊고 다른 사이트에서 수정 된
을Sub Client()
Dim webRequest As HttpWebRequest
Dim responseReader As StreamReader
Dim responseData As String
Dim postData As String = "authenticity_token=ubL5PfTzyrvhB%2Bb1A2MISb2IUZxsEadmZWc0z7Gs2qA%3D&url=&user%5Bname%5D=USERNAME&user%5Bpassword%5D=PASSWORD&user%5Broaming%5D=0"
Dim cookies As CookieContainer = New CookieContainer()
Dim requestWriter As StreamWriter
Dim strUrl As String = Nothing
Dim strRequestedHTML As String
Try
'get login page with cookies
strUrl = "https://e926.net/user/login"
webRequest = HttpWebRequest.Create(strUrl)
webRequest.AllowAutoRedirect = True
webRequest.CookieContainer = cookies
'recieve non-authenticated cookie
webRequest.GetResponse().Close()
'post form data to page
strUrl = "https://e926.net/user/authenticate"
webRequest = HttpWebRequest.Create(strUrl)
webRequest.AllowAutoRedirect = True
webRequest.Method = WebRequestMethods.Http.Post
webRequest.ContentType = "application/x-www-form-urlencoded"
'webRequest.CookieContainer = cookies
webRequest.ContentLength = postData.Length
requestWriter = New StreamWriter(webRequest.GetRequestStream)
requestWriter.Write(postData)
requestWriter.Close()
'recieve authenticated cookie
webRequest.GetResponse().Close()
'now we get the authenticated page
webRequest = HttpWebRequest.Create("https://e926.net/post")
webRequest.CookieContainer = cookies
responseReader = New StreamReader(webRequest.GetResponse.GetResponseStream())
responseData = responseReader.ReadToEnd()
responseReader.Close()
strRequestedHTML = responseData
My.Computer.Clipboard.SetText(strRequestedHTML)
Catch ex As Exception
MsgBox("<br />There was an error going to this site: " + strUrl + "<br> Error: " + ex.Message)
Return
End Try
End Sub
, 그러나 나는에 그것을 시도 처음 5 개 사이트에서 잘 근무하고있다 그러나 E926은 '로그인'페이지에서 세부 정보를 가져 와서 '인증'페이지로 리디렉션하므로 프로그램이 쿠키를 제대로 전송하지 않아 '로그인'의 정보를 전송할 수없는 것처럼 보입니다. 저는 '바이올린 2'를보고 '쿠키'와 그 정보가 실제로 어떻게 페이지에 전송되는지에 대한 아이디어를 얻었습니다. 쿠키가 누락되었다는 것이 분명해 보입니다. 나는 ' 인증 토큰 '으로 표시되며 변경된 내용은 본 적이 없지만 숨겨진 양식의'로그인 '페이지에 표시됩니다.
제 질문은 로그인 프로세스가 올바르게 수행되도록 쿠키를 어떻게 전송할 수 있습니까? 그 것이 내 문제입니까, 아니면 문제를 일으키는 다른 것입니까?
편집 : IE에서 헤더 : 프로그램에서 https://docs.google.com/document/d/1UPf2vzPF11Q-i_3xSkZmdN1dfqFZX4ydyAZhVeQlh94/edit?usp=sharing
헤더/그 코드 : https://docs.google.com/document/d/1ltZo3JZLt4sZiwZBltfqqParb3H86qi62I0KZN5t_VE/edit?usp=sharing
사이드 노트 : 로그인 시스템이 _ 완전하게 안전하지 않습니다. – SLaks
그래, 몇 번이나 내가 그 사이트에서 일해야 할 때, 나는 데이트 된 암호와 사용자 이름을 사용한다고 생각했습니다. – user2994429