1.index.aspx页面包含Login.ascx控件.提交方式:post...
2.Login.ascx控件用途是判断用户登录,及显示。登录按钮=服务器控件...
3.登录成功后,记录状态且显示不同画面,但是当我F5刷新时,提示"不重新发送信息将无法刷新网页"...网上也搜索到一些信息:也尝试过:
抛出异常:
try
{}
catch  //无效
{}
登录成功后再次跳转:
Response.Redirect("~/index.aspx"); //死循环,用户一直登录更改表单提交方式:
将post改为get //不会改,所以暂时先不尝试求助,帮解,分析...
 protected void btn_login_Click(object sender, EventArgs e)//登录按钮
    {        try
        {
            if (Session["Employee_Name"] != "" && Session["Employee_Name"] != null)
            {
                Name.Text = Session["Employee_Name"].ToString(); // 显示用户名
            }
            if (Session["Department"] != "" && Session["Department"] != null)
            {
                string DepartmentName = Session["Department"].ToString(); //用户的部门
                Department.Text = DepartmentName.Length > 5 ? DepartmentName.Substring(0, 5) + "..." : DepartmentName;
            }
            if (Session["Manager"] != "" && Session["Manager"] != null)
            {
                Manager.Text = Session["Manager"].ToString(); //用户所属的组
            }
            string password = "";
            if (Session["password"] != "" && Session["password"] != null)
            {
                password = Session["password"].ToString(); //用户密码        
             }
            Panel1.Visible = false;
            Panel2.Visible = true;
            if (Name.Text != null && Name.Text != "")
            {
                string strCmd = "insert into LoginLog(LoginName,DepartmentName,password) values('" + Name.Text + "','" + Department.Text + "','" + password + "')";
                bind.insert(bind.createCon(), strCmd); //增加登录log
                Page.Response.Redirect("~/index.aspx"); //加上就死循环...
            }
        }
        catch (InvalidCastException a)
        {
            throw(a);
        }
    }

解决方案 »

  1.   

    没什么,显示“不重新发送信息将无法刷新网页”好像是.net的一种机制网上好像有办法禁止掉。。
      

  2.   

    post提交时有"请求体"的,而get提交只有“请求行”、“请求头”。你的后台数据将被拼接到地址栏上面,这样不仅有很大的安全隐患,url还非常的不漂亮,由于url参数的动态显示,对搜索引擎也不友好。最主要的是你的后台代码“按钮事件”也没法执行了
      

  3.   


                if (Session["Employee_Name"] != "" && Session["Employee_Name"] != null)
                {
                    Name.Text = Session["Employee_Name"].ToString(); // 显示用户名
                }
    你的代码也有点小问题,至少应该先判断Session["Employee_Name"]是否为null,我觉得这个写在if的前面好点。。还有session存储是object对象,怎么用来和字符串""比较呢???
      

  4.   


    封装在一个方法中  页面的LOAD时间 和 Button的Click 事件 都调用它不就行了
      

  5.   

    Response.Redirect("~/index.aspx"); //加上就死循环...index.aspx里写啥了提交之后要跳转页面
      

  6.   

    考虑到这点,所以不用get方式了..
      

  7.   

    呵呵,记得拿服务器控件写的都有这个小问题,可以的换换JQ吧,登录写到Handler里处理,F5几次都不管。
      

  8.   


    最好 写成 if(Session["Employee_Name"]!=null)
    {}else
    {}
      

  9.   

    没写什么,只是读取数据了,本身index.aspx页面就包含登录控件,你登录成功,在跳转index.aspx页面,不是又回到登录按钮中去了,目前是这样的理论...
      

  10.   

    没用过login登陆控件!!!自己写个登陆就好了嘛,一把抓都掌握在自己手里话说,其实这个登陆要做好还是相当不容易的,因为很多设计这个功能都存在问题。。昨天看到了一篇帖子,我找找等下给个链接。。
      

  11.   


    我记着这么写不起作用。
    1.先判断是否为null...
    2.再判断是否为空...
    3.使用
    需要3步
     
    我这么写貌似就可以直接用了...
      

  12.   


    thank you very much...
      

  13.   

    晕死,找不到了。。我把我记得的说一下吧。。1、不要保存用户密码到客户端,即使是加密过后的密码。
    2、密码一定要加密传输。最好产用不可逆的加密算法,如:md5……
    3、一般在登陆的时候是没法“安全加密”的,js可能可以加密,但是安全性不高,这是一般产用https,也就是SSL,这个我没有弄过,不是很了解。上面说到的保存密码,那为什么要保存密码呢,是因为网站上的“记住密码”功能。。文中对这个功能的解决办法是:在客户端保存三个数据,用户名、加密过后的随机码、Token(令牌)不过文章中提到的tonken我不怎么清楚。。不知道是怎么发挥作用的。。
      

  14.   


    jquery,js库,主要用来解决浏览器兼容性等问题。
      

  15.   

    建议在index里来判断session,如果session为空,可以登录,反之亦然。