2010-11-01 4 views
0

У меня есть вопрос о сеансе в asp.net, я делаю приложение asp.Net, и я использую сеанс для хранения user_id и пароля. И я узнал, что сеанс - это конкретное время, в течение которого пользователь может взаимодействовать с приложением. Я также узнал, что я могу использовать в прецессии, вне процесса, как сервер состояния и сервер sql для хранения сеанса. И когда первый пользователь обращается к серверу, тогда uniqeId или токен хранятся на стороне пользователя в форме файлов cookie или если куки не включены, то переработанный URL-адрес используется для дальнейшей связи с сервером, поэтому я путаюсь в pint, что в моем приложении i я беру имя пользователя в один сеанс и пароль за один сеанс и еще один сеанс для хранения некоторого значения, поэтому я хочу знать, что для каждого сеанса, который я использую в приложении, генерируется уникальный идентификатор (токен) или создается один единственный токен, соответствующий каждому пользователь для этого приложения, даже если мы используем в нем какое-либо количество сеансов.создает два идентификатора для сеанса

я хочу спросить что-то вроде этого

session["userNme"]=userName; 
session["password"]=password; 

, так что я хочу знать, когда пользователь Войти, то его идентификатор пользователя и пароль сохраняются в сессии и на каждой странице и идентификатор пользователя и пароль проверяются, если сессия истекает, а затем отправляется на страницу входа, поэтому я хочу знать, когда пользовательский логин делает два токена сгенерированными один для userId, а один для пароля - это правда.

ответ

2

Ваша путаница возникает из-за смешивания сеансов и переменных сеанса.

Что вы используете, это переменные сеанса, а не сеансы. Для каждого пользователя существует только один объект сеанса, и этот объект может содержать несколько переменных сеанса.

Поскольку для каждого пользователя есть только один объект сеанса, на пользователя есть только один идентификатор сеанса.

Объекты сеанса хранятся на сервере (или на государственном сервере), а идентификатор сеанса соединяет одного пользователя с одним объектом сеанса.

Объект сеанса имеет коллекцию Items, которая содержит переменные сеанса, и это переменные в этой коллекции, к которым вы обращаетесь, когда вы кладете скобки после объекта сеанса.

Итак, ваш код ярлык для этого:

Session.Items["userNme"] = userName; 
Session.Items["password"] = password; 
+0

поэтому объект сеанса автоматически по рейтингу, когда я использую один элемент сеанса в приложении это правильно я имею в виду, если я использую сессии [ «userNmae»] = имя_пользователь; сессии [ "пароль"] = пароль; то автоматически создается объект сеанса, это правда? Потому что я не делал никаких в своем приложении. – NoviceToDotNet

+0

@NoviceToDotNet: каждый запрос всегда имеет объект Session (если специально не указано как сеансовое). Если вы поместите сеансы varaibles в объект Session, они будут сохранены на сервере, иначе будет сохранен только сеанс и создается новый объект Session для каждого запроса. – Guffa

+0

Сессия [COMMON.SESSION_USERNAME.ToString()] = table.Rows [0] [Student.studentColumns.user_name.ToString()]. ​​ToString(); Сессия [COMMON.SESSION_USERID.ToString()] = table.Rows [0] [Student.studentColumns.student_id.ToString()]. ​​ToString(); – NoviceToDotNet

Смежные вопросы