2010-04-20 3 views
1

У меня есть страница входа, поэтому, как только пользователь вводит правильные данные, он входит на домашнюю страницу. Теперь я хочу, чтобы реализовать 3 вещиСеансы в asp.net

  1. раз он нажимает на кнопку «выйти из системы», он должен быть перенаправлен на страницу говоря «логаут успешно» п, даже если нажмет кнопку назад в браузере, он не должен иметь доступ.

  2. если пользователь покидает домашний простаивает в течение определенного времени сказать 10minutes, а затем он пытается перейти через 10 минут тзд должен отображать слова «Ваш сеанс истекли снова вход»

  3. если дан URL-адрес главной страницы, к которому он не должен иметь доступ, только если вы не вошли в систему. Я не уверен, что именно мне нужно делать и как это сделать. Plz Помощь Привет

Indranil Mutsuddy

+2

Что вы сделали до сих пор? –

+1

i я новичок в asp.net. Я занимался проектированием n кодирования (все еще в процессе) , но ничего особенного в отношении сеансов. – piku

ответ

0

Для этого вам следует использовать ASP.NET Forms Authentication.

  • Когда нажата кнопка выхода из системы, вызовите FormsAuthentication.SignOut. Это приведет к удалению информации о билетах формы-аутентификации из файла cookie (или URL-адреса, если он не используется).

  • Для тайм-аута используйте атрибут timeout в элементе system.web/authentication/forms вашего web.config. Обратите внимание, что тайм-аут проверки вашей формы не зависит от таймаута сеанса.

+0

Спасибо большое за поддержку. – piku

0

Случай 1:

При нажатии на кнопку Log Off очистить сессию.

Нажатие кнопки «Назад» в браузере может привести к извлечению страницы из кеша. Таким образом, написание сеанса на странице может быть неэффективным. Вы можете отключить кеширование страницы, чтобы при нажатии кнопки «назад» будет создан новый запрос на страницу.

Для страниц не кэшировать установить этот

Response.Cache.SetCacheability(HttpCacheability.NoCache); 

Случай 2:

Вы можете установить тайм-аут по умолчанию для сессии в 10 минут. См HttpSessionState.Timeout Property

Случай 3:

Проверка сеанса для утратившим если установлено, что нуль перенаправления на страницу входа в систему.

+0

Спасибо Rahul Можете ли вы дать краткую информацию об отключении кеширования. Заранее спасибо – piku

+0

'Response.Cache.SetCacheability (HttpCacheability.NoCache);' – rahul

+0

См http://msdn.microsoft.com/en-us/library/c4yy9w70.aspx – rahul

2

1) Когда пользователь выходит из системы, я бы рекомендовал выполнить Session.Abandon(). Если пользователь нажимает кнопку «Назад» в браузере, он может видеть кэшированную версию старой страницы (это зависит от браузера), но он все равно ничего не сможет сделать. Отключить кэширование на ваших страницах, и пользователь не должен даже видеть кэшированные старую версию :) простой способ сделать это было бы добавить следующее в Application_BeginRequest global.asax в:

HttpContext.Current.Response.Cache.SetCacheability(HttpCacheability.NoCache); 
HttpContext.Current.Response.Cache.SetNoStore(); 

2) ваш web.config установить сеанс lifetim 10 минут, добавочный .. это будет делать трюк

<system.web> 
    <authentication mode="Forms"> 
     <forms defaultUrl="~/LoggedIn.aspx" loginUrl="~/Login.aspx" protection="All" path="/" slidingExpiration="true" timeout="10"/> 
    </authentication> 
    </system.web> 

3) Вы можете сделать это с помощью правил авторизации в web.config.Если вы не хотите, не анонимных пользователей получить доступ к веб-сайт просто разрешить доступ только для зарегистрированных пользователей, как это:

<system.web> 
    <authorization> 
     <deny users="?"/> 
    </authorization> 
    </system.web> 

Если вы хотите ограничить доступ не ко всему веб-сайт, но только в некоторых областях (например, в области MyAccount , то вы можете добавить это вместо .. Примечание:.! Web.config может иметь несколько <location> элементов

<location path="MyAccountFolder"> 
    <system.web> 
     <authorization> 
     <deny users="?"/> 
     </authorization> 
    </system.web> 
    </location> 

Там одно важное замечание о месте тега Путь делает сейчас начать с «/» Так что, если вам хотите защитить папку/MyAccount, тогда ваш тег начнется следующим образом:

<location path="MyAccount" /> 
+0

спасибо buddy Но как реализовать без кэширования вещь ??? – piku

+0

добавил пример в пункт 1) –

+0

привет спасибо 4 ур ответ. Я пробовал это на странице_load (страницы, которые можно просмотреть после входа в систему) if (session ["UserId"] == Null) response.redirect ("login.aspx") на странице входа в систему i session ["UserId "] = txtBox1.text и как-то это работает .. Правильно ли это? – piku

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