MVC-查询

115 阅读1分钟

///

/// 查看 /// /// /// public AdminUserDTO GetAdminUser(long id) { using (var db = new RentHouseContext()) { var bs = new BaseService<T_AdminUsers>(db); var bsroles = new BaseService<T_Roles>(db);

            var model = bs.Get(e => e.Id == id);
            if (model != null)
            {
                var dto = new AdminUserDTO()
                {
                    Id=model.Id,
                    Name = model.Name,
                    PhoneNum=model.PhoneNum,
                    Email = model.Email,
                    CityId = model.CityId,
                };
                //需要获取当前用户的权限,并且做上标记

                //1.先获取所有的角色
                var bsrole = new BaseService<T_Roles>(db);
                var permissionList = bsrole.GetList(e => true, e => e.Id, false);

                //2.获取当前角色所拥有的权限
                var rolePermissions = model.T_Roles;

                dto.RoleList = new List<RoleEditDTO>();
                foreach (var item in permissionList)
                {
                    var role = new RoleEditDTO()
                    {
                   
                        Id = item.Id,
                        Name = item.Name,
                        //需要在这里增加一个标识,来表示当前这个权限是该角色所拥有的
                        IsUerd = rolePermissions.Any(e => e.Id == item.Id)
                    };
                    dto.RoleList.Add(role);
                }
                return dto;
            }
            return null;
        }
    }

private void SetUserData(LoginAdminDto loginAdminDto, bool isRemeberMe) { //1.将用户信息对象转成json格式(序列化) //封装一个扩展方法,方便json格式序列化 var userData = loginAdminDto.ToJson();

        //2.创建加密票据
        FormsAuthenticationTicket ticket = new FormsAuthenticationTicket(2, "loginUser", DateTime.Now, DateTime.Now.AddDays(1), false, userData);

        //3.对票据进行加密
        string ticketEncrypt = FormsAuthentication.Encrypt(ticket);

        //4.将加密之后的用户信息写入到Cookie中
        HttpCookie cookie = new HttpCookie(FormsAuthentication.FormsCookieName, ticketEncrypt);
        cookie.Path = FormsAuthentication.FormsCookiePath;

        //当用户勾选了我,则需要指定Cookie的有效期
        if (isRemeberMe)
        {
            cookie.Expires = DateTime.Now.AddHours(6);
        }

        //5.将cookie写入响应流中发送的客户端

        //获取http请求上下文
        HttpContext context = HttpContext.Current;

        //最好先将原来的移除
        context.Response.Cookies.Remove(FormsAuthentication.FormsCookieName);
        context.Response.Cookies.Add(cookie);
    }