验证码的session问题

jhlong12345 2015-09-15 11:44:15
仿做了个登录页面,有验证码
登录页面代码:

<input type="text" id="txtVCode" placeholder="验证码" />
<img src="ValidateCode.ashx" id="imgCode" alt="单击可刷新" />
<a href="javascript:void(0)" onclick="ClickRemoveChangeCode();return false;">看不清</a>
<button type="button" onclick="login()">登录</button>



<script type="text/javascript">
//单击重新改变验证码
function ClickRemoveChangeCode() {
var code = $("#imgCode").attr("src");
$("#imgCode").attr("src", code + "1");
}

function login() {
if ('<%=Session["Validatecode"] %>' != $("#txtVCode").val())
{
alert("validate code is error");
}

alert($("#txtVCode").val());
alert('<%=Session["Validatecode"] %>'); //这里一直为空
}
</script>


ValidateCode.ashx代码如下

public class ValidateCode : IHttpHandler, IRequiresSessionState
{

public void ProcessRequest(HttpContext context)
{
context.Response.ContentType = "image/jpeg";
System.Drawing.Image ima = BytesToImage(CheckCode(context));
ima.Save(context.Response.OutputStream, System.Drawing.Imaging.ImageFormat.Jpeg);
}

public bool IsReusable
{
get
{
return false;
}
}

/// <summary>
/// 验证码的校验
/// </summary>
/// <param name="context"></param>
/// <returns></returns>
protected System.Drawing.Image CheckCode(HttpContext context)
{
//生成验证码
Common.ValidateCode validateCode = new Common.ValidateCode();
string code = validateCode.CreateValidateCode(4);
context.Session["Validatecode"] = code; //生成验证码时记录session
return validateCode.CreateValidateGraphic(code);
}
}


如上,login页面(前端或者后台)一直获取不到生成图片ValidateCode.ashx的session,是什么原因
谢谢
...全文
206 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
jhlong12345 2015-09-16
  • 打赏
  • 举报
回复
一步步跟踪发现是我搞错了 Page_Load 在Button_Click也会执行,另外web页的'<%=Session["Validatecode"] %>'刷新验证码也只记录着第一次的,还是后台处理好。结贴
jhlong12345 2015-09-15
  • 打赏
  • 举报
回复
引用 1 楼 lanqiwudi7 的回复:
我试了一遍,Session可以正常使用. 建议用排除法. 先用另一个简单的ashx文件来测试session, session正常的话,在ValidateCode.ashx一段一段地注释来排除问题.
http://download.csdn.net/detail/jhlong12345/9108605 测试代码已上传,方便的话请帮忙查看,谢谢
googlelq 2015-09-15
  • 打赏
  • 举报
回复
我试了一遍,Session可以正常使用. 建议用排除法. 先用另一个简单的ashx文件来测试session, session正常的话,在ValidateCode.ashx一段一段地注释来排除问题.

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧