public string UnprotectDataToString(byte[] protectedData, string tag)
 {
     if (protectedData == null)
     {
         return(null);
     }
     byte[] array = DataProtectionLocal.LocalUnprotectData(protectedData);
     if (array == null)
     {
         return(null);
     }
     if (protectedData.Length == 0)
     {
         return(string.Empty);
     }
     return(Encoding.Unicode.GetString(array));
 }
        public static string LocalUnprotectData(string data)
        {
            if (data == null)
            {
                return(null);
            }
            byte[] data2 = Convert.FromBase64String(data);
            byte[] array = DataProtectionLocal.LocalUnprotectData(data2);
            string text  = null;

            if (array != null)
            {
                text = Encoding.Unicode.GetString(array);
                if (text != null && text.Length > 0 && text[text.Length - 1] == '\0')
                {
                    text = text.Remove(text.Length - 1);
                }
            }
            return(text);
        }