///
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);
}