Ejemplo n.º 1
0
        private AdminCookieDto GetAdminCookieDto(ActionExecutingContext context)
        {
            var cookie = context.GetCookie(CookieSetting.AdminCookie);

            if (string.IsNullOrEmpty(cookie))
            {
                return(null);
            }
            var sp = cookie.Split(".");

            if (sp.Length != 2)
            {
                return(null);
            }
            var bytes = Base64.FromBase64ForUrlString(sp[0]);
            var hash  = HashUtil.GetMd5String(bytes);

            if (hash == sp[1])
            {
                bytes = ThreeRCX.Encrypt(bytes, RsaHelper.Instance.CookiePassword);
                var json = Encoding.UTF8.GetString(bytes);
                try {
                    var userDto = json.ToObject <AdminCookieDto>();
                    if (userDto.ExpireTime < DateTime.Now || userDto.CreateTime > DateTime.Now)
                    {
                        return(null);
                    }
                    return(userDto);
                } catch { }
            }
            return(null);
        }