Note: Forums will be making significant UX changes to address key usability improvements surrounding search, discoverability and navigation. To learn more about these changes please visit the announcement which can be found HERE.
aspx网站中有__viewstate这个,并且傻长,怎么访问?

Răspuns aspx网站中有__viewstate这个,并且傻长,怎么访问?

  • 2012年4月2日 14:25
     
     

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

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

全部回复

  • 2012年4月3日 1:46
    版主
     
     

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

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


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

  • 2012年4月3日 12:14
     
     

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

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

  • 2012年4月3日 12:54
    版主
     
     已答复 包含代码

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

    能不能给点思路,怎么能获取到这个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日 14:38
     
     

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

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

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

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

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

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