<%@ WebHandler Language="C#" Class="wx_login" %> using System; using System.Web; using System.Net; using Tencent; using eMIS.Data; using System.Data; public class wx_login : IHttpHandler { public void ProcessRequest (HttpContext context) { const string cookies_name = "_user"; string userId = "", wx_uid = ""; Weixin wx = new Weixin(context); string rurl = context.Request["state"]; string code = context.Request["code"]; if (!string.IsNullOrEmpty(code)) { wx.Messager.GetAccesstoken(); wx_uid = wx.Messager.GetUserId(code); eDbManager manager = new eDbManager(eMIS.Data.WebConfigManager.DefaultDb); eDbOperator dbo = manager.CreateDbOperator(); string sql =string.Format( "select id,xingming from com_yhb where login='{0}' or ad='{0}' or phone='{0}'",wx_uid); DataTable tab = dbo.ExecuteTable(sql); if (tab.Rows.Count > 0) { userId = Convert.ToString(tab.Rows[0][0]); HttpCookie usercookie = new HttpCookie(cookies_name); usercookie.Values["userid"] = userId; usercookie.Values["wx_uid"] = wx_uid; usercookie.Values["board"] = "wx"; usercookie.Values["xm"] = context.Server.UrlEncode(Convert.ToString(tab.Rows[0]["xingming"])); usercookie.HttpOnly = true; usercookie.Expires = DateTime.Today.AddDays(30); context.Response.AppendCookie(usercookie); } else { throw new Exception("未找到用户:" + wx_uid); } } context.Response.ContentType = "text/plain"; context.Response.Write(userId); context.Response.Write(code); context.Response.Redirect(rurl); } public bool IsReusable { get { return false; } } }