各位高手能人你们好:
    近日我做了一个WEB项目,已提交到服务器上(ASP.NET+SQL),其中用到了TreeView控件和OWC控件,用的是Form验证的安全方法,但是有的机器上运行时,当在登录页面中按登录按钮后,页面会自动关闭(我是在服务器及其局网内测试的,但是用公司机器远程访问是可行的).一时间也找不到原因,还请各位高手给予指教.谢谢!!

解决方案 »

  1.   

    /// <summary>
    /// 用户登录事件代码
    /// </summary>
    /// <param name="sender"></param>
    /// <param name="e"></param>
    private void btnLoad_Click(object sender, System.EventArgs e)
    {
    DataView dv = null;
    GetDatas gd = new GetDatas();
    string strIdAddr = Request.UserHostAddress.ToString();
    try
    {
    dv = gd.UserLogin(this.txtUserName.Text.Trim(),this.txtPassword.Text.Trim(),strIdAddr);
    IEnumerator ie = dv.GetEnumerator();
    while(ie.MoveNext())
    {
    // 从DataView取得一行数据
    DataRowView dr = (DataRowView)ie.Current;
    //取得返回代码
    string strRetCode = dr[0].ToString();
    //取得返回信息字符
    string strRetMsg = dr[1].ToString();
    //如果登陆成功
    if(strRetCode == "0")
    {
    Session["userNo"] = this.txtUserName.Text.Trim(); //用户编号
    Session["password"] = this.txtPassword.Text.Trim(); //用户密码
    Session["userName"] = dr[3].ToString(); //用户名称
    Session["rights"] = dr[7].ToString(); //用户权限
    this.SetCookies();
    this.SetVistedCount(); //设置访问次数
    //Form验证
    FormsAuthentication.RedirectFromLoginPage(this.txtUserName.Text.Trim(),false);
    Response.Redirect("TransToIndex.htm");
    //Response.Redirect("index.htm");
    }
    //如果登陆不成功
    else
    {
    Response.Write("<script>alert('"+strRetMsg+"');</script>");
    return ;
    }
    }
    }
    catch(System.Exception ex)
    {
    Response.Write("<script>alert('"+ex.Message+"');</script>");
    }
    }这是登陆按钮的事件代码!,我想会不会与FORM验证有关系呢?
      

  2.   

    哎,原因终于找出来了,原来是IE设置作的怪,因为有的电脑上面的IE是阻止弹出窗口的,我在登陆时先是关闭本窗口,而后再用OPEN打开一个弹出式窗口,所以整IE也就关闭了,问题是我用JavaScript如何才能改变IE的设置呢,比如设置IE为允许弹出窗口.