예제 #1
0
        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;
            }
        }
예제 #2
0
        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"));
        }
예제 #3
0
        /// <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("");
        }