Как правильно обрабатывать билет проверки подлинности с помощью форм при использовании сеанса без файлов cookie - PullRequest
1 голос
/ 12 августа 2011

Я почти уверен, что у меня нет уникальной проблемы, но я искал по всему 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>
...