powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Грамотная обработка таймаута сессии
10 сообщений из 35, страница 2 из 2
Грамотная обработка таймаута сессии
    #33230831
Фотография vladgrig
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
наверное лучше один раз увидеть чем сто раз услышать
Логин:public
Пароль:public
Тайм-аут 2 мин.
P.S. сильно не критикуй - ибо ради функционала, а не забавы для... Кстати, рад выслушать замечания о граблях ;)
...
Рейтинг: 0 / 0
Грамотная обработка таймаута сессии
    #33230835
Orion
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
vladgrig наверное лучше один раз увидеть чем сто раз услышать
Логин:public
Пароль:public
Тайм-аут 2 мин.
P.S. сильно не критикуй - ибо ради функционала, а не забавы для... Кстати, рад выслушать замечания о граблях ;)

Ты думаешь, что я как-то смогу попасть на твой localhost ?
У меня уже голова кругом в
ASP.NET Community Starter Kit
ASP.NET Portal
Вообще сессию не пасут, в Community Starter Kit только в одном месте
Session[""] используется
...
Рейтинг: 0 / 0
Грамотная обработка таймаута сессии
    #33230843
Фотография vladgrig
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Грамотная обработка таймаута сессии
    #33230862
Фотография vladgrig
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторУ меня уже голова кругом в
ASP.NET Community Starter Kit
ASP.NET Portal
Вообще сессию не пасут, в Community Starter Kit только в одном месте
Session[""] используется
я думаю всё это происходит потому что все эти люди читают литературу...
Учебный курс MCAD/MSCD Сертификационный экзамен 70-305 и 70-315 (Разработка Web-приложений на Microsoft Visual Basic .NET и Microsoft Visual C# .NET Официальное пособие Microsoft для самостоятельной подготовки Москва, 2003 стр.114-115)

Упорядочение доступа к переменным состояния
Переменные состояния Application и Session — мощное и потому опасное средство. Если использовать их бессистемно, проще простого наделать ошибок в коде, как часто бывало в старом Basic.
......
......
Во избежание подобных проблем следует упорядочивать доступ к переменным состояния Application и Session. Проще всего сделать это следующим образом. Для каждого необходимого элемента данных объявляются переменные на уровне страницы, затем при исполнении обработчика события Page_Load в них записываются значения переменных состояния Application и Session, а при исполнении обработчика события Page_UnIoad значения переменных, объявленных на уровне страницы, возвращаются в переменные состояния. Упорядоченное чтение и запись переменных состояния — полезный прием программирования, который рекомендуется взять на вооружение.
Следующий код иллюстрирует упорядоченный доступ к переменным состояния:
Visual Basic .NET
Public Class WebForrnl
' Объявить переменную на уровне страницы.
Dim strUname As String
Private Sub Page__Load(ByVal sender As System.Object.ByVal e As System.EventArgs) Handles MyBase.Load
'Получить значение переменной состояния.
strUname = Application("Uname")
'Присвоить значение.
strUname = "Wombat"
Использовать переменную.
Response.Write(mstrUname)
End Sub
Private Sub Page__Unload(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Unload
'Вернуть значение в переменную состояния
Application("Uname")=strUname
End Class
...
...
Внимание! В случае Visual C#, прежде чем вызывать любые методы переменной состояния, например ToString, обязательно убедитесь, что ее значение отлично от null, иначе вы получите ошибку времени выполнения из-за пустой переменной состояния.
Отключение переменных состояния Session
По умолчанию AS P. NET поддерживает переменную состояния Session для каждой страницы приложения. Если странице не нужна сеансовая переменная состояния, то для повышения производительности ее можно отключить.
Чтобы отключить переменную состояния Session для одной Web-формы:
• вызовите окно Web Form Properties для формы и установите EnableSession State как False.
Чтобы отключить переменные состояния Session во всем приложении:
• в файле Web.config установите для тега <sesstonstate mode> значение off:
<sessionstate mode="off">

P.S. От себя добавлю, что при таком методе наверное не так сложно в LoadPage отследить наличие переменных сессии или их отсутствие (даже на каждой странице ;) ) и, соответственно обработать происходящее надлежащим образом... Желаю удачи...
...
Рейтинг: 0 / 0
Грамотная обработка таймаута сессии
    #33232271
Orion
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ничего нового в вышесказанном нет, чтобы самому до этого дойти ума много не надо.
Остановим пока дебаты, пока я сам не сделаю то, что имел ввиду.
Напишу потом здесь.
...
Рейтинг: 0 / 0
Грамотная обработка таймаута сессии
    #33232327
Orion
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Не совсем понял что я должен был увидеть в вашем примере.
Но танцующий котик под музыку - прикольно, только тяжеловато 100к для странички.
...
Рейтинг: 0 / 0
Грамотная обработка таймаута сессии
    #33232537
Фотография vladgrig
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
На самом деле, (лично мне) всё ясно... Вы всё умеете и всё уже знаете... И книги для вас не авторитет, и мнения так себе... Непонятно одно, - к чему тогда вообще весь этот фарс с вопросами о грамотной обработке!!!!????
P.S. Про тяжесть котика - на скорость трафика не жалуемся - потому и жируем... ;) А насчёт того что должен был увидеть - так я так скажу - каждый видит то, что хочет - там и обработка сессии была (в натуральном виде), и книги умные для вас лежали...
...
Рейтинг: 0 / 0
Грамотная обработка таймаута сессии
    #33232611
Orion
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
vladgrigНа самом деле, (лично мне) всё ясно... Вы всё умеете и всё уже знаете... И книги для вас не авторитет, и мнения так себе...
Ничего вам не понятно :)

vladgrigНепонятно одно, - к чему тогда вообще весь этот фарс с вопросами о грамотной обработке!!!!????
Наберитесь терпения.

vladgrigтам и обработка сессии была (в натуральном виде), и книги умные для вас лежали...
Я мало что там смог разглядеть, у меня котик еле загрузился. Связь у меня не ахти, наш МТС в этом плане - отстой. Так что я не понял, толи ваш сайт глючил, толи МТС, я склоняюсь ко второму, но дальше второго экрана мне сдвинуться не удалось.
А отсутствием литературы слава богу я не страдаю, спасибо.
Давайте действительно прекратим этот никому ненужный "фарс", офтопики никому не интересно читать ;)
...
Рейтинг: 0 / 0
Грамотная обработка таймаута сессии
    #33232866
Orion
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вобщем решение проблемы сводится к написанию всего одного Http модуля:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
public class SessionTrackerModule : IHttpModule
	{
		public void Dispose()
		{
		}

		public void Init(HttpApplication app)
		{
			app.AcquireRequestState += new EventHandler(OnEnter);
				
		}

		private void OnEnter(object sender, EventArgs e)
		{
			HttpContext context = HttpContext.Current;
			//sam это SessionAppModel
			//по ключу SessionAppModel в сессии может находиться что угодно, главное чтобы 
			//туда при старте приложения (в данном случае это скрипт default.aspx) 
			//было записанно что-то, отличное от null
			string sam_init_url;
			

			if (context.Request.ApplicationPath.Equals("/"))
				sam_init_url = "default.aspx";                
			else
				sam_init_url = string.Concat(context.Request.ApplicationPath, "/default.aspx");

			if(context.Session["SessionAppModel"]==null && context.Request.CurrentExecutionFilePath!=sam_init_url)
			{
				//Помечаем что необходимо вывести сообщение об истечении сессии (если надо)
				//После вывода скрипта переменную DisplaySessionTimeoutMessage лучше удалить
				FormsAuthentication.SignOut();
				context.Session["DisplaySessionTimeoutMessage"]=true;
				context.Response.Redirect(sam_init_url,true);
			}

		}

	}

Ещё надо не забыть этот модуль прописать в Web.config

1. FormsAuthentication.SignOut(); в принципе можно не делать.
2. Если приложение на фреймах, то на странице установки набора фреймов следует добавить JavaScript вида:
Код: plaintext
1.
2.
3.
4.
5.
6.
<script language="javascript">
if ( top.location != this.location )
{
top.location =  this.location;
}
</script>
Он позаботится чтобы фреймы не оказались "сами в себе".
3. Надо удалить все закэшированные данные на событие
Session_End.


Работает на ура! :) Просто, элегантно и без лишнего гемороя ;)
...
Рейтинг: 0 / 0
Грамотная обработка таймаута сессии
    #33232870
Orion
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ой, что я написал....
В кэше надо удалить только объекты, относящиеся к закрываемой сессии, ито, если это необходимо.
...
Рейтинг: 0 / 0
10 сообщений из 35, страница 2 из 2
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Грамотная обработка таймаута сессии
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]