2015-01-20 2 views
0

Я использую проверку подлинности в моем проекте Asp.Net MVC.Asp.Net Identity Log-in After Timeout

Когда пользователь, Пользователь A, заседание которого истекло время ожидания делает запрос на сервер, сервер возвращает страницу регистрации вместе с возвратного URL, который является URL Пользователь A просил , Таким образом, когда Пользователь A повторно аутентифицируется, он/она перенаправляется на этот первоначальный запрос.

Оставив вещи, как они есть, если, вместо Пользователя A повторно-аутентификацию, некоторые пользователя B аутентифицирует вместо этого, он/будет направлен на «s пользователя последнего запрос, а не по умолчанию домашняя страница.

Как я могу сообщить серверу перенаправить на возвращаемый URL-адрес, только если текущий пользователь совпадает с тем, кто был отключен?

ответ

0

Сервер не будет знать, является ли сеанс с тайм-аутом тем же самым пользователем, что и новый сеанс (в конце концов, старый сеанс), поэтому вы не можете сделать это на основе этой информации.

Некоторые альтернативы:

  1. Вы можете, однако, попытка разобрать параметр ReturnUrl в действие, которое принимает учетные данные для входа в систему и после аутентификации, написать свой собственный бизнес-логику, чтобы определить, является ли Запрошенный URL-адрес принадлежит вновь аутентифицированной учетной записи, а перенаправляет соответственно.

  2. Вы можете рассмотреть возможность избавиться от функции ReturnUrl вообще, и просто перенаправить все на ту же целевую страницу после регистрации в, независимо от того, что ссылка была нажата.

  3. Другой альтернативой может быть клиентом скрипт, который выгружает неаутентифицированных запросов ограниченных ресурсов, просто навигационными страницу на страницу входа в систему автоматически по истечении заданного тайм-аут. Как и то, что ваш банк, вероятно, делает, если вы покинете свою страницу с учетной записью , открытую после таймаута.

+0

Я не знаю достаточно о том, как работает Identity, но, теоретически, даже если запрос содержит истекший файл cookie, сервер все равно должен видеть, кому этот файл cookie был предоставлен, и отправить эту информацию обратно вместе с обратным адресом. Таким образом, после проверки подлинности сервер может проверить, совпадает ли текущий пользователь с предыдущим пользователем. –

+0

1. Анализ параметра url для меня бесполезен: запрашиваемые ресурсы не зависят от пользователя. –

+0

# 3 не дает мне больше преимуществ перед # 2. Сейчас идет с №2. –