Web防止刷新重复提交(代码未验证)

2015-12-19 17:51:22  访问(1314) 赞(0) 踩(0)

 #region 防止刷新重复提交
        /// <summary>
        /// 防止刷新重复提交
        /// </summary>
        /// <param name="btn">按钮控件</param>
        /// <returns></returns>
        public static bool SubmitCheckForm(LinkButton btn)
        {
            if (HttpContext.Current.Request.Form.Get("txt_hiddenToken").Equals(GetToken()))
            {
                SetToken();
                Thread.Sleep(500);////延迟500毫秒
                return true;
            }
            else
            {
                ShowMsgHelper.showWarningMsg("为了保证表单不重复提交,提交无效");
                return false;
            }
        }
        /// <summary>
        /// 获得当前Session里保存的标志
        /// </summary>
        /// <returns></returns>
        public static string GetToken()
        {
            HttpContext rq = HttpContext.Current;
            if (null != rq.Session["Token"])
            {
                return rq.Session["Token"].ToString();
            }
            else
            {
                return string.Empty;
            }
        }
        /// <summary>
        /// 生成标志,并保存到Session
        /// </summary>
        public static void SetToken()
        {
            HttpContext rq = HttpContext.Current;
            rq.Session.Add("Token", Md5Helper.MD5(rq.Session.SessionID + DateTime.Now.Ticks.ToString(), 32));
        }
        #endregion

#region "MD5加密"
        /// <summary>
        /// MD5加密
        /// </summary>
        /// <param name="str">加密字符</param>
        /// <param name="code">加密位数16/32</param>
        /// <returns></returns>
        public static string MD5(string str, int code)
        {
            string strEncrypt = string.Empty;
            if (code == 16)
            {
                strEncrypt = System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(str, "MD5").Substring(8, 16);
            }

            if (code == 32)
            {
                strEncrypt = System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(str, "MD5");
            }

            return strEncrypt;
        }
        #endregion



标签:Web防止刷新重复提交(代码未验证) 

上一条:

下一条:


 

相关评论

评论加载中……
 

发表评论

类型:
内容:
  (Alt+Enter)
 
  ┈全部┈  
 
(显示默认分类)