Я почти уверен, что у меня нет уникальной проблемы, но я искал по всему Google и на этом сайте, и я не нашел надежного ответа на то, что я ищу.Поэтому я хотел объяснить себе, могу ли я получить какую-либо помощь по этому вопросу:
Мы (мои коллеги и я) решили, что нам нужны сеансы без файлов cookie, поскольку нашим пользователям требуется несколько сеансов для полученияих работа выполнена более продуктивно.
Пример Боб, пользователь мог инициировать длительный процесс в окне А, и для продолжения работы Боб откроет окно Б, которое порождает новый сеанс.Это необходимо для того, чтобы не мешать тому, что происходит в окне A. Каждый раз, когда Боб открывает новое окно, он должен снова войти в систему.
Проблема Я не совсем уверен, является ли это реальной проблемой или нет, поэтому у меня причина спросить.Проблема, которую я считаю обнаруженной мной, заключается в том, что при каждом входе в систему Боба текущий билет проверки подлинности с помощью форм (и файл cookie) перезаписываются.Теперь я не понимаю, как это нормально, или почему предыдущая комбинация «Сессия / Окно» остается в силе после того, как Боб вошел во второй раз.Поскольку заявка была перезаписана, не означает ли это, что первая комбинация Session / Window должна завершиться, поскольку заявка больше не действительна?Это в отношении:
Request.IsAuthenticated //Making sure the supplied ticket is valid
Вопросы Итак, поскольку Билет для проверки подлинности с помощью форм (и Cookie) перезаписан, что это значит?
- Должен ли я быть обеспокоен тем, что билет (и Cookie) перезаписаны?
При входе в систему, должен ли я перехватить билет (если есть) и проверить его срок действия?Если он не истек, я должен попытаться обновить билет или просто сделать новый?
FormsAuthentication.RenewTicketIfOld(ticket) //Just an example
Если я использую сеанс без файлов cookie, я должен просто использовать файлы без файлов cookieАутентификация по формам тоже?Смысл этого в том, чтобы сделать каждый сеанс / окно на 100% независимыми друг от друга.Переписывания больше не будет.Есть ли обратная связь с этим?Я не могу думать ни о чем.
PS: я знаю, что cookie - это просто контейнер для того, что в нем хранится, как пара Key Value.
Дополнительная информация ...
Билет для проверки подлинности с помощью форм: IsPersistent установлен в trueВерсия билета 2
Формы Cookie: Key = FormsCookieName (из тега web.config)Значение = хэшированный билет
Web.Config:
<sessionState
cookieless="true"
mode="SQLServer"
sqlConnectionString="..."
timeout="300"
regenerateExpiredSessionId="true" />
<forms name="FormsCookieName"
path="../"
loginUrl="Login.aspx"
protection="All"
timeout="300"
slidingExpiration="true" >
</forms>