//dto =》json =》票据 =>票据加密=》cookie
//1、将LoginAdminDTO序列化,方便存入票据(Service也需要添加json引用,以及版本一致)
var json = admin.ToJson()
//2、创建票据FormsAuthenticationTicket
FormsAuthenticationTicket ticket = new FormsAuthenticationTicket(2, "loginUser", DateTime.Now, DateTime.Now.AddDays(7), false, json)
//3、对票据加密FormsAuthentication.Encrypt(ticket)
var encrypt = FormsAuthentication.Encrypt(ticket)
//4、将加密后票据存入cookie( HttpCookie )
HttpCookie cookie = new HttpCookie(FormsAuthentication.FormsCookieName, encrypt)
//5、若用户勾选记得我,则指定cookie有效期( Expires )
if (login.IsRemeberMe)
{
cookie.Expires = DateTime.Now.AddDays(7)
}
//6、将cookie写入响应流中发送客户端(获取http请求上下文HttpContext ,移除原来的数据,存入新的)
HttpContext context = HttpContext.Current
context.Response.Cookies.Remove(FormsAuthentication.FormsCookieName)
context.Response.Cookies.Add(cookie)
return AjaxResult<bool>.Success(true)