protected void Application_PostAuthenticateRequest(Object sender, EventArgs e) { HttpCookie authoCookies = Request.Cookies[FormsAuthentication.FormsCookieName]; if (authoCookies != null) { FormsAuthenticationTicket ticket = FormsAuthentication.Decrypt(authoCookies.Value); JavaScriptSerializer js = new JavaScriptSerializer(); User user = js.Deserialize <User>(ticket.UserData); LoginUserIdentity loginUserIdentity = new LoginUserIdentity(user); UserCustomPrincipal userCustomPrincipal = new UserCustomPrincipal(loginUserIdentity); HttpContext.Current.User = userCustomPrincipal; } }
public ActionResult Login(User objUser) { User user = _unitOfWork.UserService.GetUserByCredentials(objUser); JavaScriptSerializer js = new JavaScriptSerializer(); string data = js.Serialize(user); FormsAuthenticationTicket ticket = new FormsAuthenticationTicket(1, user.UserName, DateTime.Now, DateTime.Now.AddMinutes(30), false, data); string encToken = FormsAuthentication.Encrypt(ticket); HttpCookie authoCookies = new HttpCookie(FormsAuthentication.FormsCookieName, encToken); Response.Cookies.Add(authoCookies); LoginUserIdentity loginUserIdentity = new LoginUserIdentity(user); UserCustomPrincipal myPrincipal = new UserCustomPrincipal(loginUserIdentity); HttpContext.User = myPrincipal; return(RedirectToAction("Note", "Note")); }
/// <summary> /// 获取片区数据 /// </summary> /// <param name="IsHeadOffice"></param> /// <returns></returns> public string GetMyArea(int IsHeadOffice, string EmployeeNo, bool IsShowClub = false) { try { List <ObjectList> ObjectModel = new List <ObjectList>(); //1.0确定登录人是否具有多身份 //var model = DbContext.EMPLOYEE_MUTI_DEPARTMENT.Where(c => c.EMPLOYEENO == EmployeeNo).Select(x => x.UCSTAR_ID).FirstOrDefault(); string sql = "select UCSTAR_DEPTID from employee where no='" + EmployeeNo + "' and UCSTAR_DEPTID like '%,%'"; string model = DbContext.Database.SqlQuery <string>(sql).FirstOrDefault(); List <LoginUserIdentity> dataList = new List <LoginUserIdentity>(); if (!string.IsNullOrEmpty(model)) { var tempModel = model.Trim().Split(','); foreach (var item in tempModel) { LoginUserIdentity obj = new LoginUserIdentity(); var son = DbContext.DEPARTMENT.Where(c => c.UCSTAR_ID == item).FirstOrDefault(); if (son != null) { var pid = GetRootDepartment(son).ID; var data = DbContext.DEPARTMENT.Where(c => c.ID == pid).Select(x => new LoginUserIdentity { CODE = x.ID, NAME = x.NAME }).FirstOrDefault(); dataList.Add(data); } } dataList = dataList.GroupBy(c => c.CODE).Select(c => new LoginUserIdentity() { CODE = c.Key, NAME = c.FirstOrDefault().NAME }).ToList(); } var AreaModelCount = dataList.Where(c => c.NAME.Contains("直营片区")).ToList(); var realModel = dataList.Where(c => c.NAME.Contains("直营片区") == false).ToList(); //是片区或者包含片区身份 if (IsHeadOffice == 0 || AreaModelCount.Count > 0) { var list = GetAreaList(EmployeeNo, IsShowClub); foreach (var item in realModel) { ObjectModel.Add(new ObjectList() { CODE = item.CODE.ToString(), NAME = item.NAME }); } ObjectModel.AddRange(list); } else { //两个不同根部门的多身份总部用户 if (realModel.Count > 1) { foreach (var item in realModel) { ObjectModel.Add(new ObjectList() { CODE = item.CODE.ToString(), NAME = item.NAME }); } } } return(ObjectModel.Count == 0 ? "" : Public.JsonSerializeHelper.SerializeToJson(ObjectModel)); } catch (Exception ex) { Logger.Write("获取片区数据失败:" + ex.ToString() + "," + System.Reflection.MethodBase.GetCurrentMethod().Name); } return(""); }