在平常的页面上很容易就的到request,response对像,从而对其进行一些操作,但在ashx(一般处理程序)中却是有一点的不同,
在ashx你无法正常的使用session,即
1 context.session["TestA"]="1111";
虽然生成的时候是不报错的,但是是赋值不了的,而且也取不到值.
如果要在ashx中使用session,需要引用 using System.Web.SessionState; 并且实现 IRequiresSessionState 接口.
using System.Web.SessionState;
public class login : IHttpHandler, IRequiresSessionState {
public void ProcessRequest (HttpContext context) {
context.Response.ContentType = "text/plain";
string type = context.Request.Form["type"];
switch (type)
{
case "0":
sendMessage(context);
break;
case "1":
saveUserRealInfo(context);
break;
}
}
/*用户发送短信*/
private void sendMessage(HttpContext context)
{
string mobile = context.Request.Form["mobile"];
if (Regex.IsMatch(mobile,@"^1[3-9]\d{9}$"))
{
// string data = CommClass.Comm.sendMessage(mobile, 1);
string data ="5668";
if (data!= "")
{
/*通过session存储验证码,方便页面验证*/
context.Session[mobile]=data;
context.Response.Write("发送成功!");
------------------