public static string GetSecurityKey(SecurityData data)
        {
            string userdata = Uri.EscapeDataString(SecurityUtility.EncryptUserData(data.UserData));
            string input    = string.Format("{0}#{1}#{2}#{3}#{4}#{5}", data.UserID, data.Expiration, userdata, data.Remember, data.UserPhone, data.UserName);
            string key      = SecurityUtility.EncryptSecurityKey(input);

            //base on http://blogs.msdn.com/b/yangxind/archive/2006/11/09/don-t-use-net-system-uri-unescapedatastring-in-url-decoding.aspx
            return(Uri.EscapeDataString(key));
        }
        /// <summary>
        /// BDapp-GetBdSecurityKey
        /// </summary>
        /// <param name="data"></param>
        /// <returns></returns>
        public static string GetBdSecurityKey(BdSecurityData data)
        {
            string userdata = Uri.EscapeDataString(SecurityUtility.EncryptUserData(data.UserData));
            string input    = string.Format(
                "{0}#{1}#{2}#{3}#{4}#{5}#{6}#{7}#{8}",
                data.UserID,
                data.Expiration,
                userdata,
                data.Remember,
                data.UserPhone,
                data.UserName,
                data.Agent,
                JsonConvert.SerializeObject(data.Roles),
                data.LoginAccount);
            string key = SecurityUtility.EncryptSecurityKey(input);

            return(Uri.EscapeDataString(key));
        }