none
aspx网站中有__viewstate这个,并且傻长,怎么访问? RRS feed

  • 问题

  • 我用抓包工具发现有的aspx网站post的数据中有:__viewstate=asasdfqwer......反正很长啦。。。。怎么用程序访问啊?我查了一下资料,发现是aspx网站的一个特性。。。。

    专家们谁知道,教导一下新手吧。。。vb6或vb.net都行。

    2012年4月2日 14:25

答案

  • 大哥,我是准备做个客户端程序访问这个网站。我不是自己建设这个网站。

    能不能给点思路,怎么能获取到这个viewstate,并且能够post出去。。。。。?

    你应该使用WebBrowser类,然后加载这个Url,并且使用其中的一些方法。示例代码(举例,请根据实际情况更改):

    获取隐藏域内容的方法(你还要post隐藏的内容,我不认为可能;因为post方法恐怕只能在本页面进行post):

    Dim wb As New WebBrowser Addhandler webBrowserForPrinting.DocumentCompleted, AddressOf CompleteWebBrowser wb.Navigate("你的url地址") //事件 Private Sub CompleteWebBrowser(ByVal sender As Object, _ ByVal e As WebBrowserDocumentCompletedEventArgs) Dim wb As WebBrowser = CType(sender, WebBrowser) //获取隐藏域的value内容(已经加密,很长) Dim contents As String = wb.Document.GetElementById("你的隐藏域ID").GetAttribute("value")

    End Sub


       QQ我:讨论(Talk)
    下载MSDN桌面工具(Vista,Win7)
    我的博客园
    慈善点击,点击此处

    2012年4月3日 12:54
    版主

全部回复

  • 任何服务端的网页开发程序到最终客户端都是HTML形式(本质也是HTML)。因此网站都不具备记忆性。之所以你在一个TextBox中写入文字,点击submit按钮文字仍旧存在,就是因为这些看不见的ViewState在起作用(记忆文本数据内容,保持来回页面传送时候不至于被丢失)。如果你不想看到这个ViewState,你可以有选择地禁用(EnableViewState=false)试试看(不过有些控件禁用貌似无法正常工作的)。

    很长是数据被加密了,无法直接进行访问的(看不到真正内容的,否则就被破解了)。


       QQ我:讨论(Talk)
    下载MSDN桌面工具(Vista,Win7)
    我的博客园
    慈善点击,点击此处

    2012年4月3日 1:46
    版主
  • 大哥,我是准备做个客户端程序访问这个网站。我不是自己建设这个网站。

    能不能给点思路,怎么能获取到这个viewstate,并且能够post出去。。。。。?

    2012年4月3日 12:14
  • 大哥,我是准备做个客户端程序访问这个网站。我不是自己建设这个网站。

    能不能给点思路,怎么能获取到这个viewstate,并且能够post出去。。。。。?

    你应该使用WebBrowser类,然后加载这个Url,并且使用其中的一些方法。示例代码(举例,请根据实际情况更改):

    获取隐藏域内容的方法(你还要post隐藏的内容,我不认为可能;因为post方法恐怕只能在本页面进行post):

    Dim wb As New WebBrowser Addhandler webBrowserForPrinting.DocumentCompleted, AddressOf CompleteWebBrowser wb.Navigate("你的url地址") //事件 Private Sub CompleteWebBrowser(ByVal sender As Object, _ ByVal e As WebBrowserDocumentCompletedEventArgs) Dim wb As WebBrowser = CType(sender, WebBrowser) //获取隐藏域的value内容(已经加密,很长) Dim contents As String = wb.Document.GetElementById("你的隐藏域ID").GetAttribute("value")

    End Sub


       QQ我:讨论(Talk)
    下载MSDN桌面工具(Vista,Win7)
    我的博客园
    慈善点击,点击此处

    2012年4月3日 12:54
    版主
  • 大哥,感谢哈。我也想到用伟大的webbrowser了。估计能够用这种较笨的办法搞定。因为这种办法可以无视viewstate=..........这堆垃圾。。。根据资料,这好象是什么base64编码。。不是加密的东东。

    我明天写程序试试哈。webbrowser.document......应该可以搞定这个王八网站。。。。。

    post这个viewstate应该也是可能的,因为fiddler能抓到它,就是在程序中,我不知道怎么抓到它。。。。。我才学写程序几天而已。。。。高手也不出来教教我们。。。。郁闷中。。

    2012年4月3日 14:38
  • 建议看看我的方法,应该是可以的——把hiddenfield的value取出。注意自动生成的id(唯一键值),然后用Document的GetElementById方法获取。

       QQ我:讨论(Talk)
    下载MSDN桌面工具(Vista,Win7)
    我的博客园
    慈善点击,点击此处

    2012年4月4日 0:57
    版主
  • 我明天有时间试试吧。。。。。多谢啊。应该是可以的。但post不出去的话,就没用了。这个太长。。。。。
    2012年4月4日 8:38