2013-04-18 2 views
0

Я использую простой экран входа для входа в экран входа в asp.net формы C#.ASP.NET Простой пользовательский вход

Я знаю, как действовать, чтобы пользователь имел уникальное имя пользователя и т. Д. Я могу сделать это легко.

Мой вопрос заключается в том, что как только пользователь выполнил вход в систему, как я могу оценить пользователя между разными страницами. Имейте в виду, что я не использую встроенную таблицу asp.net Membership and Roles (Есть некоторые причины, по которым я не хочу ее использовать).

Моя мысль заключалась в том, что после входа пользователя в систему, чтобы просто установить настройку сеанса и проверить, что на другой странице, требующей разрешения на доступ. Если у меня есть действующий сеанс, я могу позволить пользователю просмотреть страницу.

я могу сделать что-то вроде:

 Session["ValidUser"] = "ValidUser"; 

Одна вещь, что я не уверен в том, что мнение пользователей сайта в течение 10 часов после входа в систему. Как настроить его так, чтобы сеанс не был тайм-аутом. Также переменная сеанса - лучший способ.

Благодаря

+1

В чем проблема с безопасным файлом cookie? Вы можете установить на нем атрибут 'Secure' или установить' 'в webconfig – DGibbs

ответ

0

Сессии являются стандартным методом для сохраняющихся данных между страницами asp.net. Тем не менее, вы не захотите проводить сеансы в течение 10 часов. По умолчанию, я считаю, что это 20 минут.

Вы можете продлить время ожидания, но я бы рекомендовал хранить файл cookie или что-то подобное.

+0

Что вы подразумеваете под чем-то эквивалентным? Вы ссылаетесь на состояние просмотра? или строку запроса? –

+0

Я думаю, что наиболее безопасным является состояние сеанса, и, может быть, вы правы в том, что не храните его в течение 10 часов, но я думаю, что если он хранит только одну переменную, то это нормально. –

+0

Не знаете, почему это было приостановлено, это здравый ответ – DGibbs

-1

Да, состояние сеанса является лучшим решением, если вы не используете встроенный в членстве asp.net, и это является наиболее безопасным,

вы можете изменить тайм-аут сеанса более десяти часов, добавляя это в ваш файл web.config, где тайм-аут отправляется в течение минут

<system.web> 
<sessionState mode="InProc" cookieless="false" timeout="600" /> 
</system.web> 
+1

Сессии не постоянное хранение. Чем больше вы увеличиваете тайм-аут сеанса, тем больше вероятность того, что у вас откроются сеансы пользователей, что означает, что сервер будет тратить ресурсы на сохранение данных сеанса в течение более длительного времени. В зависимости от активности на сайте это может быть катастрофическим показателем производительности. – DGibbs

+0

Вы правы, сеансы не должны храниться в течение десяти часов, но это более безопасно, чем хранить переменную в cookie, особенно если он использует ее для членство. Но также вы ошибаетесь в том, что «сеансы не являются постоянным хранилищем», какие они тогда !!!! –

+1

Вы не знакомы с безопасными куки? Установка флага 'Secure' предотвратит отправку файла cookie с запросом по схеме без HTTPS, они также не могут быть прочитаны сценарием на стороне клиента. Это прекрасно, и я считаю, что реализация asp.net по умолчанию зависит от этого ('ASPXAUTH cookie'?) – DGibbs