public static UserModel GetCurrentUser() { var cookies = HttpContext.Current.Request.Cookies; // 获取cookie var cookie = cookies.Get(FormsAuthentication.FormsCookieName); if (cookie == null) { return(null); } // 解析ticket数据 var ticket = FormsAuthentication.Decrypt(cookie.Value); LoginTicketDataModel userData = null; try { userData = JsonConvert.DeserializeObject <LoginTicketDataModel>(ticket.UserData); } catch (Exception ex) { var log = LogHelper.GetLogger(typeof(UserHelper)); log.Error("User ticket deserialized failed.", ex); return(null); } // 获取用户信息 ObjectId objectId; if (!ObjectId.TryParse(userData.UserID, out objectId)) { var log = LogHelper.GetLogger(typeof(UserHelper)); log.Error("UserID parse failed."); return(null); } var mongo = new MongoHelper(); var filter = Builders <BsonDocument> .Filter.Eq("ID", objectId); var doc = mongo.FindOne(Constant.UserCollectionName, filter); if (doc == null) { return(null); } return(new UserModel { ID = doc["ID"].ToString(), Username = doc["Username"].ToString(), Name = doc["Name"].ToString(), Password = doc["Password"].ToString(), Gender = doc["Gender"].ToInt32(), Phone = doc["Phone"].ToString(), Email = doc["Email"].ToString(), QQ = doc["QQ"].ToString(), CreateTime = doc["CreateTime"].ToLocalTime(), UpdateTime = doc["UpdateTime"].ToLocalTime(), Salt = doc["Salt"].ToString(), Status = doc["Status"].ToInt32() }); }