2009-05-13 2 views
0

Итак, вот что я пытаюсь достичьКак вы заставляете пользователя оставаться на определенной странице веб-сайта?

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

Я хочу, чтобы перенаправить обратно в этот changepassword.aspx когда-либо он пытается уйти, если он не изменит свой пароль

Так Как мне это сделать? и что еще более важно, где?

Спасибо за помощь!

EDIT: Я знаю, что мы можем использовать response.redirect, но не может быть использован в работе Выгрузки

EDIT: Хорошо, я не прошу это право, мне нужна помощь в поддержании пользователя на странице - как я это делаю и какую часть страницы [загружать, выгружать и т. д.]

ответ

-1

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

6

Пожалуйста, не делайте этого. Такой PITA UI очень раздражает. Просто законьте свой пароль, а затем не получите доступ, если они не меняют его.

Не относиться к своим пользователям, как дети (если они на самом деле не являются дети и, возможно, даже не то)

Edit: Сделано это ответ сообщества, так как я просто проповедь не отвечает ;-)

+0

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

+0

спасибо за точку зрения :) :) – thisismydisplayname

+0

То, что ваш клиент должен будет объяснить, заключается в том, что пользователь должен сделать что-то еще - если они просто сдадутся и выключат свою машину, вы ничего не можете сделать что. Просто будьте довольны тем, что, если их пароль истек, они не могут получить доступ к чему-либо еще на вашем сайте - в плохие старые дни Интернета вы можете продолжать создавать новые окна, когда пользователь их отключает, но, к счастью, эти дни в основном отстают нас. Сожалею. Как вы узнали, единственным «надежным» индикатором, который идет пользователь, является событие Unload, и к тому времени уже слишком поздно, если всплывающие окна не включены ... –

1
  1. Установить сеанс var, если необходимо изменить их пароль
  2. На каждой проверке pageload на этот сеанс и, если он существует (и они не находятся на экране смены пароля), перенаправлять.
+0

Это самое простое решение. –

+0

Нет, нет. Сделайте это в Global.asax. Включение его в каждое событие загрузки страницы является смехотворным. –

+0

Я действительно не имел в виду буквальное событие pageload. Плохая опечатка. – Oli

-1

Я установил переменную в своем сеансе, а затем проверил событие события Global.asax Application_BeginRequest для переменной Session и при необходимости перенаправил.

2

Explained: Forms Authentication in ASP.NET 2.0

«Этот модуль объясняет, как проверка подлинности форм работает в ASP.NET версии 2.0. Это объясняет, как IIS и ASP.NET аутентификации работать вместе, и это объясняет роль и операции класса FormsAuthenticationModule.»

В web.config, у меня есть раздел авторизации говоря

<authorization> 
    <deny users="?"/> 
    <allow users="*"/> 
</authorization> 


<location path="ChangePassword.aspx"> 
    <system.web> 
    <authorization> 
     <allow users="*"/> 
    </authorization> 
    </system.web> 
</location> 
1

Мы использовали для использовать MasterPage на нашем сайте и в случае Page_Load того, мы перенаправить пользователя на наш Changepassword. aspx страница.

Мы также использовали (или злоупотребляли, в зависимости от вашей точки зрения) элемент Profile члена asp.net и просто устанавливали в нем значение MustChangePassword. Это означает, что при входе в систему вы можете увидеть, установлена ​​ли запись MustChangePassword в их профиле и перенаправляется на страницу смены пароля. Это, безусловно, держит их на странице.

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

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