Я использую Owin, чтобы сконфигурировать аутентификацию MVC 5 с помощьюIntercept Cookie Войти в ASP.net MVC 5
public void ConfigureAuth(IAppBuilder app) {
IAppBuilder.UseCookieAuthentication(AuthenticationType =
DefaultAuthenticationTypes.ApplicationCookie,
LoginPath = new PathString("/Account/Login")
});
}
... и подписать на пользователей, использующих
var identity = await UserManager.CreateIdentityAsync(user,
DefaultAuthenticationTypes.ApplicationCookie);
AuthenticationManager.SignIn(new AuthenticationProperties() {
IsPersistent = isPersistent }, identity);
В моей User
модели I имеют флаг, Inactive
, который, когда установлен администратором, должен помешать пользователю войти в систему. Это не проблема, когда пользователи вступают в систему, не спрашивая, чтобы их запомнили (без настройки файла cookie), поскольку я могу получить информацию о том, являются ли они неактивными или нет. действовать на основе этого.
Проблема заключается в том, что они заходят в систему и просят запомниться (отметьте флажок «Запомнить меня»). В следующий раз, когда они просматривают сайт, ASP.net автоматически регистрирует их. Где я должен перехватить эту процедуру, чтобы проверить, неактивен ли пользователь или нет?
Я читал о Application_PostAuthenticateRequest
в global.asax
protected void Application_PostAuthenticateRequest(object sender, EventArgs e) {
//do stuff with User.Identity here
}
Но этот метод, кажется, вызывается дважды, иногда в 3 раза. Также я хочу узнать, была ли аутентификация получена из файла cookie или путем ввода учетных данных на странице входа.
Спасибо,