Я хочу реализовать проверку подлинности с помощью форм на веб-сайте ASP.NET, сайт должен искать пользователя в базе данных, чтобы получить некоторые данные, а затем проходить проверку подлинности с использованием LDAP (Active Directory) для проверки комбинации пользователя и пароля.
После этого мне нужно сохранить экземпляр класса, который представляет пользователя, чтобы использовать его в различных формах.
Я пытался сделать это раньше с помощью элемента управления для входа в систему, который проверяет предыдущие условия и делает AuthenticateEventArgs.Authenticated = true
и помещает объект в сеанс: Session ["user"] = authenticatedUser;
, но у меня были проблемы с синхронизацией обоих (сеанс истек до того, как auth cookie, и я получил NullReferenceExceptions, когда страницы пытались использовать уже не существующий объект сеанса).
Какой лучший способ сделать это? Есть ли способ синхронизировать время ожидания сеанса с продолжительностью жизни файлов cookie? Пользовательский объект должен быть сохранен любым другим способом? Я упустил суть?
UPDATE:
Я не могу использовать Windows Auth Provider, потому что сайт должен быть доступным из-за пределов сети.