예제 #1
0
        public static SessionalUser GetUser(this ISession sess)
        {
            string        cacheKey = GetUserCacheKey(sess);
            SessionalUser r        = CacheUtils.Get <SessionalUser>(cacheKey);

            if (null != r)
            {
                return(r);
            }
            string s = sess.GetString(_userIdKey);

            if (String.IsNullOrEmpty(s))
            {
                return(null);
            }

            var setting = new JsonSerializerSettings();

            setting.PreserveReferencesHandling = PreserveReferencesHandling.Objects;
            setting.ReferenceLoopHandling      = ReferenceLoopHandling.Serialize;
            r = JsonConvert.DeserializeObject <SessionalUser>(s, setting);
            if (null == r || r.Id <= 0)
            {
                return(null);
            }

            CacheUtils.Set(cacheKey, r);
            return(r);
        }
예제 #2
0
        public static void Exit(this ISession sess)
        {
            string cacheKey = GetUserCacheKey(sess);

            CacheUtils.Remove(cacheKey);
            sess.Clear();
            sess.Abandon();
        }
예제 #3
0
        public static void SetUser(this ISession sess, SessionalUser user)
        {
            string cacheKey = GetUserCacheKey(sess);

            CacheUtils.Set(cacheKey, user);
            var setting = new JsonSerializerSettings();

            setting.PreserveReferencesHandling = PreserveReferencesHandling.Objects;
            setting.ReferenceLoopHandling      = ReferenceLoopHandling.Serialize;
            setting.NullValueHandling          = NullValueHandling.Ignore;
            string s = JsonConvert.SerializeObject(user, setting);

            sess.SetString(_userIdKey, s);
        }
예제 #4
0
 public static void SetToken(this ISession sess, string token)
 {
     sess.SetString(_tokenKey, token);
 }
예제 #5
0
 public static string GetToken(this ISession sess)
 {
     return(sess.GetString(_tokenKey));
 }
예제 #6
0
 private static string GetUserCacheKey(ISession sess)
 {
     return("WSU_" + sess.Id);
 }