Imports System.Security.Cryptography
Public Function ValidateAuthenticationToken(ByVal authenticationToken As String, ByRef userName As String) As Boolean
Dim STR_EncryptionKey As String = "a3sEncrypti0nK3yF0rP0rtalW3bsit3"
Dim STR_IV As String = "ZsGMgXGgxAhritPfSs9jDQ=="
Dim decryptedToken As String = String.Empty
Console.WriteLine("start")
Using aesAlg As AesCryptoServiceProvider = New AesCryptoServiceProvider()
aesAlg.Key = Convert.FromBase64String(STR_EncryptionKey)
aesAlg.IV = Convert.FromBase64String(STR_IV)
Dim decryptor As ICryptoTransform = aesAlg.CreateDecryptor(aesAlg.Key, aesAlg.IV)
Using msDecrypt As MemoryStream = New MemoryStream(Convert.FromBase64String(authenticationToken))
Using csDecrypt As CryptoStream = New CryptoStream(msDecrypt, decryptor, CryptoStreamMode.Read)
Using srDecrypt As StreamReader = New StreamReader(csDecrypt)
decryptedToken = srDecrypt.ReadToEnd()
Console.WriteLine("start 2")
Dim xmlDocument As New XmlDocument()
xmlDocument.LoadXml(decryptedToken)
Dim userNameElement As XmlNode = xmlDocument.SelectNodes("/authenticationToken/userName")(0)
userName = userNameElement.InnerText
Dim expiresElement As XmlNode = xmlDocument.SelectNodes("/authenticationToken/expires")(0)
Dim expires As DateTime = DateTime.FromBinary(System.Convert.ToInt64(expiresElement.InnerText))
Console.WriteLine(expires)
result = expires > DateTime.Now
Console.WriteLine("fail")
Dim decodedUrl As String = "Q5lPGZlaI7zbXN3A1D5zVkWFTfVtsU66ZWWhw4b%20YrrTanIG0SkM4YiObYmS8mG3Vhj1dxBejD0v9u/fv46nSKcUhd6daLVeBGTsqgk/Ge8hGGfUREsU1ep%20HuL%20S6zkv5RZWYwCSs56zx/P415VH/8mGDdA4tbqVmwEgOgwGBs="
Console.WriteLine(HttpUtility.UrlDecode(decodedUrl))
Console.WriteLine(Convert.FromBase64String(decodedUrl))
Dim result as Boolean = ValidateAuthenticationToken(decodedUrl, "")
Console.WriteLine(result)