public JsonResult Verify(string slug, string code) { string result = "Error"; // validate the code. string decrypted = EncryptionUtility.DecryptString(code, _encryptionKey); if (decrypted != null) { // convert the json back to an object. ViewModels.NewsletterConfirmation newsletterConfirmation = JsonConvert.DeserializeObject <ViewModels.NewsletterConfirmation>(decrypted); // check that the slugs match. if (slug.Equals(newsletterConfirmation.slug)) { _dynamicsClient.AddNewsletterSubscriber(slug, newsletterConfirmation.email.ToLower()); result = "Success"; } } return(new JsonResult(result)); }
private string GetConfirmationLink(string slug, string email) { string result = _configuration["BASE_URI"] + _configuration["BASE_PATH"]; result += "/newsletter-confirm/" + slug + "?code="; // create a newsletter confirmation object. ViewModels.NewsletterConfirmation newsletterConfirmation = new ViewModels.NewsletterConfirmation(); newsletterConfirmation.email = email; newsletterConfirmation.slug = slug; // convert it to a json string. string json = JsonConvert.SerializeObject(newsletterConfirmation); // encrypt that using two way encryption. result += System.Net.WebUtility.UrlEncode(EncryptionUtility.EncryptString(json, _encryptionKey)); return(result); }