2013-03-29 1 views
1

У меня очень хорошее понимание управления сеансом asp.net.
Но у меня мало вопросов по этому поводу.asp.net session technique

  1. при создании идентификатора сеанса. при входе клиента в приложение с именем пользователя и паролем. или когда клиент пытается получить доступ к странице default.aspx.
  2. как сервер обслуживает клиентский сеанс.
  3. Можем ли мы получить доступ к идентификатору сеанса в js?
  4. Есть ли какая-либо разница между веб-формой ASP.NET и ASP.NET MVC с точки зрения создания сеанса клиентского сервера?

Любые ссылки/книги, которые дают мне очень глубокое представление о сеансе, будут полезны для меня.

Спасибо заранее! Prashant

ответ

7

У меня очень хорошее понимание управления сеансом 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.

+0

спасибо за исправление Darin – Prashant

+1

wow !!! очень приятное объяснение ....... – Niventh