Запись входа пользователя в приложение ASP.NET MVC
-
13-09-2019 - |
Вопрос
Я разрабатываю приложение ASP.NET MVC, и мне нужно записывать историю входов пользователя.Мне нужно что-то похожее на то, что в последний раз видели здесь, в Stack Overflow (я буду хранить историю, я не знаю, делает ли это SO).Я хочу знать, как лучше всего это сделать?
- Глобальный.asax:Application_AuthenticateRequest, Application_AuthorizeRequest, Session_Start
- Сайт.Мастер
любой другой, Плюсы и минусы каждого?
Спасибо
Решение 3
Я заканчиваю делать это:
Я вставил global.asax в protected void Session_Start() и в процедуру авторизации.
Другие советы
Сначала я бы создал таблицу базы данных для хранения истории входов в систему.Если вы используете базовый проект, я бы перешел к действию входа в систему AccountController и поместил код для записи записи в таблицу истории после строки FormsAuth.SignIn.
if (!ValidateLogOn(userName, password))
{
return View();
}
FormsAuth.SignIn(userName, rememberMe);
//*** Write userName to history table *****
if (!String.IsNullOrEmpty(returnUrl))
{
return Redirect(returnUrl);
}
else
{
return RedirectToAction("Index", "Home");
}
Поставщики членства раскрывают ValidatingPassword
событие.Я бы подключил свой одитинг к нему, а не к контроллеру.Чтобы сделать это еще проще, вы можете просто зажечь огонь WebEvent
затем используйте <heartbeat>
функции, доступные в вашем web.config
для сбора информации, вместо того, чтобы писать какой-либо код для ее обработки.
Также обратите внимание, что если ваша цель — просто иметь некоторую запись об ошибках, неудачные входы в систему автоматически отправляются в журнал событий с конфигурацией по умолчанию.
ПС:Просто перечитайте вопрос.Как бы вы ни хотели это реализовать, Site.Master — неподходящее место для подобных действий.Что происходит, когда вы вводите вторую главную страницу?Или визуализируйте в шаблоне то, что принадлежит шаблону.