private bool ValidAuthState(string state, out long id, out string authState) { id = 0; authState = null; try { var data = MD5Helper.ConvertStringToByte(state); data = TripleDESHelper.Decrypt(data, this._appSettings.GetTripleDESKeyData(), null, CipherMode.ECB, PaddingMode.PKCS7); var origStr = Encoding.UTF8.GetString(data); if (!string.IsNullOrWhiteSpace(origStr) && Regex.IsMatch(origStr, @"^\d+_")) { var idxS = origStr.IndexOf('_'); var idxE = origStr.LastIndexOf('_'); id = long.Parse(origStr.Substring(0, idxS)); authState = origStr.Substring(idxS + 1, idxE - idxS - 1); return(true); } } catch { } return(false); }