У меня есть класс, который содержит действительные лицензии для пользователя, и каждые 15 минут он «проверяется», чтобы гарантировать, что действующие лицензии действительны, и добавить/удалить все, что может быть изменено.Использование хранилища кэшей в MVC2
В настоящее время это доступно в моем ApplicationController, на который наследуется каждый другой контроллер в приложении, так что всякий раз, когда пользователь выполняет какие-либо операции, он гарантирует наличие у них допустимых лицензий/разрешений.
Модель лицензирования:
public class LicenseModel
{
public DateTime LastValidated { get; set; }
public List<License> ValidLicenses { get; set; }
public bool NeedsValidation
{
get{ return ((DateTime.Now - this.LastValidated).Minutes >= 15);}
}
//Constructor etc...
}
Процесс проверки:(происходит внутри метода Initialize() из ApplicationController)
LicenseModel licenseInformation = new LicenseModel();
if (Session["License"] != null)
{
licenseInformation = Session["License"] as LicenseModel;
if (licenseInformation.NeedsValidation)
licenseInformation.ValidLicenses = Service.GetLicenses();
licenseInformation.LastValidated = DateTime.Now;
Session["License"] = licenseInformation;
}
else
{
licenseInformation = new LicenseModel(Service.GetLicenses());
Session["License"] = licenseInformation;
}
Резюме:
Как вы можете видеть, этот процесс в настоящее время использует Session для хранения LicenseModel, однако мне было интересно, может ли быть проще или эффективнее использовать Cache для его хранения. (или, возможно, OutputCache?) и как я могу реализовать его.