public async Task <IActionResult> EmailConfirm(string cEmail)
        {
            string email = StringCipher.DecryptString(cEmail);

            /*
             * Creo que el protocolo http eventualmente cambia el cEmail porque a veces
             * salta la siguiente execpión al desencriptar el email
             * FormatException:
             * The input is not a valid Base-64 string as it contains a non-base 64 character,
             * more than two padding characters, or an illegal character among the padding characters.
             *
             * He reparado en que remplaza el '+' por un espacio
             * puede que haya más casos, hasta que sepa cómo solucionarlo solo queda hacer más
             * pruebas e ir corrigiendo los casos
             *
             * cEmail = cEmail.Replace(" ", "+");
             *
             */

            bool result = await _dbAccess.ConfirmEmail(email);

            if (result)
            {
                return(View("EmailConfirmado"));
            }
            else
            {
                return(RedirectToAction("Login"));
            }
        }
        public IActionResult EditarPassword(string cEmail)
        {
            string email = StringCipher.DecryptString(cEmail);

            HttpContext.Session.SetString("email", email);
            return(View());
        }
Esempio n. 3
0
        public void DecryptString_ThrowsException_WhenPassPhraseIsNotBase64()
        {
            const string text   = "100% fluffy goodness";
            const string phrase = "!incorrect!";

            Assert.Throws <FormatException>(
                () => StringCipher.DecryptString(text, phrase));
        }
Esempio n. 4
0
        public void EncryptString_CanEncryptAndDecryptString()
        {
            const string text   = "100% fluffy goodness";
            const string phrase = "cfVMjtOJ8/eJx0037MHNym3awHj9iAUBdM/bmiLUvlc=";

            var cipher    = StringCipher.EncryptString(text, phrase);
            var decrypted = StringCipher.DecryptString(cipher, phrase);

            Assert.Equal(text, decrypted);
        }
Esempio n. 5
0
        public void DecryptString_ThrowsException_WhenIncorrectPassPhraseIsUsed()
        {
            const string text   = "100% fluffy goodness";
            var          phrase = StringCipher.CreateRandomKey();
            var          cipher = StringCipher.EncryptString(text, phrase);

            var newPhrase = StringCipher.CreateRandomKey();

            Assert.Throws <CryptographicException>(
                () => StringCipher.DecryptString(cipher, newPhrase));
        }
Esempio n. 6
0
        public void DecryptString_ThrowsException_WhenPassPhraseIsNull()
        {
            const string goodText   = "100% fluffy goodness";
            const string badText    = null;
            const string goodPhrase = "cfVMjtOJ8/eJx0037MHNym3awHj9iAUBdM/bmiLUvlc=";
            const string badPhrase  = null;

            Assert.Throws <ArgumentNullException>(
                () => StringCipher.DecryptString(goodText, badPhrase));

            Assert.Throws <ArgumentNullException>(
                () => StringCipher.DecryptString(badText, goodPhrase));
        }