none
XmlHttp与ServerXmlHttp的操作差别 RRS feed

  • 问题

  • 我们有个网站,假设为test.net,访问该网站需要登陆域:dm,现在我希望通过网页自动登陆该网站,做了两个版本,一个是利用XmlHttp通过Javascript开发,另一个用ServerXmlHttp开发,两端代码如下:

    【Javascript + XmlHttp版本】
    function fCommit() {
                var name = document.getElementById("TextUser").value;
                var pwd = document.getElementById("Pwd").value;
                var domain = document.getElementById("TextDomain").value;
                var dn = domain + '\\' + name;
                xmlHttp = null;
                if (window.XMLHttpRequest)
                {
                    // code for IE7, Firefox, Opera, etc.
                    xmlHttp = new XMLHttpRequest();
                }
                else if (window.ActiveXObject) {
                    // code for IE6, IE5
                    xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
                }
                if (xmlHttp != null)
                {
                    if (name != "null")
                    {
                        xmlHttp.open("POST", "http://" + "test。net" + '/default.aspx', false, dn, pwd);
                        xmlHttp.send();
                        window.location.href = "http://" + "test。net" + '/default.aspx';
                    }
                    else
                    {
                        alert("用户名没有传输或用户名错误!请联系管理员!");
                    }
                }
                else
                {
                    alert("您的游览器不支持!建议使用ie6!");
                }
            }

    【.net版本 + ServerXmlHttp版本】
    protected void XmlHttpCheck()
            {
                try
                {
                    string Username = tbDomain.Text + "\\" + tbUser.Text;
                    string pwd = tbPwd.Text;
                    ServerXMLHTTP60 xmlHttp = new ServerXMLHTTP60();
                    string vUrl = http://test.net/default.aspx;
                    xmlHttp.open("POST", vUrl, false, Username, pwd);
                    xmlHttp.send();
                    int s = xmlHttp.status;
                    string ss = xmlHttp.statusText;
                    if (s == 200)
                    {
                        Label1.Text = "验证成功!";
                        Response.Redirect(vUrl);
                    }
                }
                catch (Exception ex)
                {
                    Label1.Text = "验证失败!";
                    throw ex;
                }
            }

    Javascript + Xmlhttp版本就可以直接登陆网站,而.net + ServerXmlHttp版本却总是弹出域登陆窗口。

    请大家帮我想想怎么才能让.net + serverxmlhttp这种方式也实现自动登陆网站呢?


    • 已移动 Sheng Jiang 蒋晟 2011年4月22日 0:05 非.Net语言 (发件人:.NET Framework 一般性问题讨论区)
    2011年4月21日 7:57

答案