Web防止刷新重复提交(代码未验证)
2015-12-19 17:51:22 访问(1316) 赞(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防止刷新重复提交(代码未验证) 


上一条:
下一条:
相关评论
发表评论