using System; using System.Collections.Generic; using System.Linq; using System.Web; using Newtonsoft.Json; using Newtonsoft.Json.Linq; using System.Web.Security; using System.Web.Script.Serialization; using System.Text; namespace FangYar.WebUI.ashx { /// /// SysUserHandler 的摘要说明 /// public class SysUserHandler : IHttpHandler { string app = System.Configuration.ConfigurationManager.AppSettings["APP"]; private FangYar.BLL.TBL.SysUsersBLL bll = new BLL.TBL.SysUsersBLL(); public void ProcessRequest(HttpContext context) { context.Response.ContentType = "text/json"; string action = context.Request.Params["Action"]; string returnstr = ""; switch (action) { case "UserInfo2": returnstr = GetUserInfo2(context); break; } context.Response.Write(returnstr); } private string GetUserInfo2(HttpContext context) { string returnstr = ""; FangYar.Model.LoginUserModel buser = new Model.LoginUserModel(); try { string UsersUid = context.Request.Params["UsersUid"]; buser = bll.GetLoginUserModelByUID(UsersUid); if (buser != null) { if (buser.state == "0") { //获取用户角色 string rolesid = FangYar.BLL.CommomBLL.GetTableIDS("rules_id", "users_uid", "TBL_SYS_USERSRULES", " where users_uid='" + UsersUid + "' and app_id='" + app + "' and rules_type='2' "); buser.roles = rolesid; //获取用户权限 string rigths = FangYar.BLL.CommomBLL.GetTableIDS("PERM_VALUE", "app_id", "TBL_SYS_PERM", " where id in(select perm_id from TBL_SYS_ROLEPERM where ROLE_ID in('" + rolesid.Replace(",", "','") + "') and app_id='" + app + "' ) "); buser.rights = rigths; //获取用户区域 FangYar.Model.TBL.TBL_SYS_ORG_Model area = new BLL.TBL.SysOrgBLL().GetModelByID(buser.OrgID); if (area != null) { buser.AreaID = area.AREA_ID; } StringBuilder userdata = new StringBuilder(); new JavaScriptSerializer().Serialize(buser, userdata); //数据放入ticket FormsAuthenticationTicket ticket = new FormsAuthenticationTicket(1, UsersUid, DateTime.Now, DateTime.Now.AddMinutes(720), true, userdata.ToString()); //数据加密 string enyTicket = FormsAuthentication.Encrypt(ticket); //将身份信息保存在cookie中,验证当前请求是否是有效请求 HttpCookie cookie = new HttpCookie(FormsAuthentication.FormsCookieName, enyTicket); HttpContext.Current.Response.Cookies.Add(cookie); returnstr = "{\"code\":1,\"msg\":\"获取信息成功\",\"data\":" + FangYar.Common.JsonHelper.ToJson(buser) + "}"; } else { returnstr = "{\"code\":-1,\"msg\":\"您的账户已锁定!请联系管理员!\"}"; } } else { returnstr = "{\"code\":0,\"msg\":\"无此用户信息\"}"; } } catch { returnstr = "{\"code\":-3,\"msg\":\"error\",\"data\":[]}"; } return returnstr; } public bool IsReusable { get { return false; } } } }