internal static string TryDecodeToken(
            string token, HttpSessionStateBase session, out string[] decodedToken)
        {
            decodedToken = new string[] { };

            if (session == null)
            {
                return("No session started");
            }

            string decryptedToken = CryptoManager.Decode(token);

            if (string.IsNullOrEmpty(decryptedToken))
            {
                return("Invalid token");
            }

            if (!decryptedToken.Contains("|"))
            {
                return("Unexpected decryption token result");
            }

            decodedToken = decryptedToken.Split('|');
            if (decodedToken.Length == 0)
            {
                return("Invalied username after token decryption");
            }

            return(string.Empty);
        }