У меня очень хорошее понимание управления сеансом asp.net.
Я думаю, что вы неправильно используете условия здесь. ASP.NET Session
- это одно, Forms Authentication
- совершенно другой предмет. Я предполагаю, что вы говорите об аутентификации форм здесь.
1) когда идентификатор сеанса создается. при входе клиента в приложение с именем пользователя и паролем. или когда клиент пытается получить доступ к default.aspx страница.
Когда кто-то вызывает метод FormsAuthentication.SetAuthCookie
, который обычно происходит, когда учетные данные имени пользователя и пароля проверяются действием LogOn.
2) как сервер обслуживает запрос сеанса клиента.
Выдается клиенту формы аутентификации, когда вызывается метод FormsAuthentication.SetAuthCookie
, и этот файл cookie отправляется на сервер при каждом последующем запросе. Файл cookie содержит зашифрованное значение имени пользователя, которое позволяет серверу заполнять IPrincipal.
3) можем ли мы получить доступ к идентификатору сессии в js?
Нет, cookie аутентификации форм испускается флагом httponly
, что означает, что он недоступен для клиентских сценариев.
4) существует ли какая-либо разница между веб-формой ASP.NET и ASP.NET MVC с точки зрения создания сеанса клиентского сервера?
Они абсолютно одинаковы. На самом деле нет такого понятия, как ASP.NET MVC client server session creation
. Весь этот механизм исходит от ASP.NET.
Теперь давайте предположим, что вы на самом деле говорили об ASP.NET в вашем вопросе. Я постараюсь ответить на ваши вопросы в этом контексте:
1) когда идентификатор сеанса создается. при входе клиента в приложение с именем пользователя и паролем. или когда клиент пытается получить доступ к default.aspx страница.
Всякий раз, когда какой-либо код на стороне сервера пытается прочитать или записать на сеанс, используя свойство HttpContext.Session
.
2) как сервер обслуживает запрос сеанса клиента.
Сессионный файл cookie отправляется клиенту, когда какой-либо скрипт на стороне сервера пытается прочитать или записать объект HttpContext.Session
. Этот файл cookie отправляется на сервер при каждом последующем запросе. Файл cookie - это всего лишь идентификатор, который позволяет получить доступ к данным сеанса, которые хранятся на сервере. По умолчанию данные сеанса хранятся в памяти. Но вы также можете настроить ASP.NET для хранения его вне proc или SQLServer. Для получения дополнительной информации о различных режимах состояния сеанса обратитесь к MSDN
.
3) можем ли мы получить доступ к идентификатору сессии в js?
Нет, cookie сеанса ASP.NET испускается флагом httponly
, что означает, что он недоступен для клиентских сценариев.
4) существует ли какая-либо разница между веб-формой ASP.NET и ASP.NET MVC с точки зрения создания сеанса клиентского сервера?
Они абсолютно одинаковы. На самом деле нет такого понятия, как ASP.NET MVC client server session creation
. Весь этот механизм исходит от ASP.NET.
спасибо за исправление Darin – Prashant
wow !!! очень приятное объяснение ....... – Niventh