У меня есть веб-приложение ASP.NET MVC, на котором установлена действительно базовая система подписки.
Мой вопрос касается того, где лучше всего реализовать дату окончания подписки. На данный момент в Site.master находится следующий код:
if (Profile.expires < DateTime.Today)
{
FormsAuthentication.SignOut();
FormsAuthentication.RedirectToLoginPage();
}
Таким образом, когда кто-либо переходит на любую страницу, этот код проверяет, не истек ли срок действия его имени пользователя.
Я, очевидно, собираюсь переместить этот код со страницы Site.master в Model.Helpers (или что-то в этом роде), однако мне было интересно, должен ли код по-прежнему вызываться откуда-то еще (в контексте с Шаблон MVC). очевидно, я перенесу код из site.master в, например, Model.Helpers.Validate ()
оттуда возможности, на мой взгляд, таковы:
- вызов метода с сайта site.master
- реализовать метод в файле global.asax, например, с ограничением маршрута.
- реализовать метод каким-либо образом через атрибуты для всех действий (не уверен, возможно ли это или как это сделать)
Кто-нибудь может подсказать, какой путь может быть лучшим? Если есть другая альтернатива, наиболее точно соответствующая шаблону проектирования MVC, пожалуйста, дайте мне знать. Я действительно хотел бы сделать это "правильным" способом:)