以前可以直接post数据给另一个站的登陆页就可以实现登陆了,现在换成了asp.net,不知道该如何写。将本地Button的PostBackUrl属性改成另一个站的登陆页,点击后出错,请问这样的问题该如何解决?

解决方案 »

  1.   

    HTMLPage.html
    <form id="form1" action="Default.aspx" method="post"> 
    <input name="txtUserName" runat="server" type="text" />
    <input name="txtUserPwd" style="width: 149px" runat="server" type="password" />
    <input id="Submit1" type="submit" value="提交" /> 
    </form> Default.aspx.cs
    protected void Page_Load(object sender, EventArgs e)
    {
        string username = Request.QueryString["txtUserName"];
        string userpass = Request.QueryString["txtUserPwd"];
        //下面判断用户名和密码不用说了吧...
    }
      

  2.   

    to 2楼:那个站肯定使用user.userId=textbox.Text;这样的形式接收数据;不是用Request.QueryStringto 3楼:
    是我实现在我自己的站里输入另一个站的用户名和密码就可以登陆到另一个站去。
      

  3.   

    如果另一个站的页面使用了ASP.Net的WebForm方式,
    并且登录是在Button_Click事件里进行的登录,就不好处理了。此时需要模拟一个ViewState,并提交这个ViewState,不过这样还是要修改另一个站的页面除非另一个站是在Page_Load进行的检测。换言之,要根据你说的那个站的代码,来处理。
      

  4.   

    为什么模拟viewstate还要修改另一个站的页面呢?
      

  5.   

    因为微软有个enableEventValidation的机制,防止从别的页面提交数据过来。
      

  6.   

    如果在本页面,模拟还可以比较方便
    2个页面时,这2个页面都要修改了,怎么模拟,百度一下都有
    比如:
    http://www.baidu.com/baidu?word=%E6%A8%A1%E6%8B%9Fviewstate&tn=ichuner_4_pg&ie=utf-8
      

  7.   

    你要知道那个站的安全机制啊,asp的只要POST值过去就可以了
    aspx的安全机制不仅仅是获得值就可以了。
      

  8.   

    <form id="form1" action="对方网站的验证网址" method="post"> 
    <input name="对方网站的用户名输入框name" runat="server" type="text" />
    <input name="对方网站的密码输入框name" style="width: 149px" runat="server" type="password" />
    <input id="Submit1" type="submit" value="提交" /> 
    </form> 
    意思就是把对方登录的action放到自己的网站上