已知登陆名和密码,要做一个winform程序,登陆页面可能为html,或者php,把id和passwd 通过程序post过去后,获取session ,请教如何获得进入后的相关链接url有没有高手做过相关的程序,高分请教,如果需要另送分  谢谢

解决方案 »

  1.   

    相CSDN这样处理,在地址后面加参数page.aspx?From=OldPage.aspx
      

  2.   

    登录PHP页面没有记录SESSION,到底是什么地方出错呢?Imports System
    Imports System.Drawing
    Imports System.Collections
    Imports System.ComponentModel
    Imports System.Windows.Forms
    Imports System.Data
    Imports System.Web
    Imports System.Web.SessionState
    Imports System.Web.UI
    Imports System.Web.UI.WebControls
    Imports System.Web.UI.HtmlControls
    Imports System.Net
    Imports System.IO
    Imports System.Text
    Imports System.Net.CookieCollection
    Public CookieHeader As String
    Public Class Form1
       Public Function Login(ByVal Url As String, ByVal Params As String)
            Dim strResult As String = getPageByPost(Url, Params)
            Return strResult
        End Function    Public Function getPageByPost(ByVal url As String, ByVal payload As String) As String
            Dim result As HttpWebResponse
            Dim strResult As String = ""
            Try
                Dim req As HttpWebRequest
                Dim RequestStream As Stream
                Dim ReceiveStream As Stream
                Dim encode As Encoding
                Dim sr As StreamReader            req = WebRequest.Create(url)
                req.Method = "POST"
                req.ContentType = "application/x-www-form-urlencoded"
                req.CookieContainer = New CookieContainer            If Not Me.CookieHeader Is Nothing Then
                    If Me.CookieHeader.Length <> 0 Then
                        Me.Text = Me.CookieHeader
                        req.CookieContainer.SetCookies(New Uri(url), Me.CookieHeader)
                    End If
                End If            Dim SomeBytes() As Byte
                Dim UrlEncoded As New StringBuilder
                Dim reserved() As Char = {ChrW(63), ChrW(61), ChrW(38)}            If payload <> Nothing Then
                    Dim i As Integer = 0
                    Dim j As Integer
                    While i < payload.Length
                        j = payload.IndexOfAny(reserved, i)
                        If j = -1 Then
                            UrlEncoded.Append(HttpUtility.UrlEncode(payload.Substring(i, payload.Length - i)))
                            Exit While
                        End If
                        UrlEncoded.Append(HttpUtility.UrlEncode(payload.Substring(i, j - i)))
                        UrlEncoded.Append(payload.Substring(j, 1))
                        i = j + 1
                    End While
                    SomeBytes = System.Text.Encoding.UTF8.GetBytes(UrlEncoded.ToString())
                    req.ContentLength = SomeBytes.Length
                    RequestStream = req.GetRequestStream()
                    RequestStream.Write(SomeBytes, 0, SomeBytes.Length)
                    RequestStream.Close()
                Else
                    req.ContentLength = 0
                End If
                result = req.GetResponse()            Me.CookieHeader = req.CookieContainer.GetCookieHeader(New Uri(url))            ReceiveStream = result.GetResponseStream()
                encode = System.Text.Encoding.GetEncoding("gb2312")
                sr = New StreamReader(ReceiveStream, encode)            Dim read(256) As Char
                Dim count As Integer = sr.Read(read, 0, 256)            Do While count > 0
                    strResult &= New String(read, 0, count)
                    count = sr.Read(read, 0, 256)
                Loop        Catch Exc As Exception            Debug.Write(Exc.Message)
            Finally            If Not result Is Nothing Then
                    result.Close()
                End If        End Try
            Return strResult
        End Function
        Function getPageByUrl(ByVal url As String) As String
            Dim result As HttpWebResponse
            Dim strResult As String = ""
            Try
                Dim req As HttpWebRequest            Dim ReceiveStream As Stream
                Dim encode As Encoding
                Dim sr As StreamReader            req = WebRequest.Create(url)            req.Method = "GET"            req.CookieContainer = New CookieContainer            If Not Me.CookieHeader Is Nothing Then
                    If Me.CookieHeader.Length <> 0 Then
                        req.CookieContainer.SetCookies(New Uri(url), Me.CookieHeader)
                    End If
                End If            result = req.GetResponse()            Me.CookieHeader = req.CookieContainer.GetCookieHeader(New Uri(url))            ReceiveStream = result.GetResponseStream()
                encode = System.Text.Encoding.GetEncoding("gb2312")
                sr = New StreamReader(ReceiveStream, encode)            Dim read(256) As Char
                Dim count As Integer = sr.Read(read, 0, 256)            Do While count > 0
                    strResult &= New String(read, 0, count)
                    count = sr.Read(read, 0, 256)
                Loop        Catch Exc As Exception
            Finally            If Not result Is Nothing Then
                    result.Close()
                End If        End Try
            Return strResult
        End Function
    End Class
      

  3.   

    登录ASP的网站就可以成功,但登录PHP的网站失败,而且没有记录SESSION,到底是什么原因呢?