Как проверить значение QueryString Null, если оно зашифровано в веб-формах - PullRequest
0 голосов
/ 15 января 2019

Итак, я недавно начал шифровать все параметры строки запроса, и теперь у меня проблема с поиском нулевого значения

 if ((Security.DecryptQueryString(HttpUtility.UrlDecode(Request.QueryString["Artigo"]))) != null)
 {                        
       int artigoID = Convert.ToInt32(Security.DecryptQueryString(HttpUtility.UrlDecode(Request.QueryString["Artigo"])));
       hdfIdArtigo.Value = artigoID.ToString();
       BindDraftMode(artigoID);
 }

это дает мне исключение, когда объект не установлен в качестве экземпляра объекта ...

Как проверить нулевое значение, когда значение зашифровано или когда значение отсутствует? Проблема в том, что я не отправляю никакие параметры на другую страницу, поэтому я не знаю, как проверить значение при шифровании

РЕДАКТИРОВАТЬ:

вот функция дешифрования

    public static string DecryptQueryString(string cipherText)
    {
        string EncryptionKey = "hyddhrii%2moi43Hd5%%";
        cipherText = cipherText.Replace(" ", "+");
        byte[] cipherBytes = Convert.FromBase64String(cipherText);
        using (Aes encryptor = Aes.Create())
        {
            Rfc2898DeriveBytes pdb = new Rfc2898DeriveBytes(EncryptionKey, new byte[] { 0x49, 0x76, 0x61, 0x6e, 0x20, 0x4d, 0x65, 0x64, 0x76, 0x65, 0x64, 0x65, 0x76 });
            encryptor.Key = pdb.GetBytes(32);
            encryptor.IV = pdb.GetBytes(16);
            using (MemoryStream ms = new MemoryStream())
            {
                using (CryptoStream cs = new CryptoStream(ms, encryptor.CreateDecryptor(), CryptoStreamMode.Write))
                {
                    cs.Write(cipherBytes, 0, cipherBytes.Length);
                    cs.Close();
                }
                cipherText = Encoding.Unicode.GetString(ms.ToArray());
            }
        }
        return cipherText;
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...