J'ai une classe qui détient des licences valides pour un utilisateur et toutes les 15 minutes, elle est "validée" pour s'assurer que les licences actuelles sont valides et pour ajouter/supprimer celles qui ont changé.Utilisation du stockage de cache dans MVC2
Actuellement, il est accessible dans mon ApplicationController, dont tous les autres contrôleurs de l'application héritent, de sorte que chaque fois que l'utilisateur effectue des opérations, il s'assure qu'ils ont les licences/autorisations valides pour le faire.
Modèle de licence:
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...
}
processus de validation:(se produit dans le procédé de l'ApplicationController Initialize())
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;
}
Résumé:
Comme vous pouvez le voir, ce processus utilise actuellement la Session pour stocker le LicenseModel, mais je me demandais s'il serait plus facile/plus efficace d'utiliser le Cache pour stocker ceci. (ou peut-être le OutputCache?) et comment je pourrais l'implémenter.