2 using System.Collections.Generic;
5 using CPE.App.Web.Models;
6 using System.Security.Cryptography;
7 using System.Configuration;
9 using CPE.App.Web.Code;
11 namespace CPE.App.Web.Helpers
13 public class VerifyAccess
15 public static bool IsValid(PurchasedCourse course)
17 return (((course.PurchaseDate).AddYears(1)) > DateTime.UtcNow);
19 public static bool VerifyTicket(string ticket, string contenturl, string firstname, string lastname, string email)
21 string secret = ConfigurationManager.AppSettings["CPE.SecretWord"];
22 string seed = (contenturl + firstname + lastname + email + secret).ToLower();
23 return ticket.Equals(sha256_hash(seed).Substring(4, 6));
25 public static bool VerifyTicket(string ticket, string contenturl, string firstname, string lastname, string email, string purchasedate)
27 string secret = ConfigurationManager.AppSettings["CPE.SecretWord"];
28 string seed = (contenturl + firstname + lastname + email + purchasedate + secret).ToLower();
29 return ticket.Equals(sha256_hash(seed).Substring(4, 6));
31 public static bool AccessBlocked(PurchasedCourse course)
33 BlockedPurchase blockedCourse = BaseController.Database.BlockedPurchases.SingleOrDefault(bc => bc.Ticket == course.Ticket && bc.ContentUrl == course.ContentUrl && bc.Email == course.Email);
34 return (blockedCourse != null);
36 public static string generateTicket(string contenturl, string firstname, string lastname, string email, string purchasedate)
38 string secret = ConfigurationManager.AppSettings["CPE.SecretWord"];
39 string seed = (contenturl + firstname + lastname + email + purchasedate + secret).ToLower();
40 return sha256_hash(seed).Substring(4, 6);
42 private static String sha256_hash(String value)
44 using (SHA256 hash = SHA256Managed.Create())
46 return String.Join("", hash
47 .ComputeHash(Encoding.UTF8.GetBytes(value))
48 .Select(item => item.ToString("x2")));