У меня есть модель пользователя, которая требует, чтобы пользователь менял свой пароль каждые три месяца. Мне нужно как-то проверить, вошел ли пользователь в систему (мы разрешаем анонимные браузеры в определенных разделах сайта), и, если срок действия его пароля истек, вынудите его ввести новый, прежде чем он сможет что-либо сделать.
Грубым способом сделать это было бы добавить немного кода к каждому действию (кроме действия ChangePassword в Account). Например:
var authenticatedUser = GetAuthenticatedUser();
if (authenticatedUser != null && authenticatedUser.IsPasswordExpired)
return RedirectToAction("Account", "ChangePassword");
Очевидно, это ужасный способ решить эту проблему, но я не уверен, что это правильный способ. Есть идеи? Я уверен, что в будущем нам нужно будет добавить больше проверок пользовательских данных, поэтому я действительно хотел бы найти хорошее решение для этого сейчас.