如何让用户留在网站的特定页面上?

时间:2009-05-13 23:24:39

标签: asp.net

所以这就是我想要实现的目标

当用户登录并且密码已过期时,我会将其重定向到更改密码屏幕。 我希望用户在转到菜单中的其他链接之前更改密码

我希望在他试图离开时重定向到此changepassword.aspx,除非他更改密码

那我该怎么做?更重要的是在哪里?

感谢您的帮助!

编辑:我知道我们可以使用response.redirect,但它不能用于卸载操作

编辑:好吧我不是问这个问题,我需要帮助让用户保持在页面上 - 我该怎么做以及页面的哪一部分[加载,卸载等] < / p>

6 个答案:

答案 0 :(得分:6)

请不要那样做。那种PITA用户界面非常烦人。只要他们的密码失效,如果他们不改变密码就会失败。

不要像对待孩子那样对待用户(除非他们真的是孩子,甚至可能不是孩子)

编辑:将此作为社区答案,因为我只是在宣讲不回答; - )

答案 1 :(得分: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>

答案 2 :(得分:1)

  1. 如果需要更改密码,请设置会话变量
  2. 在每次页面加载检查该会话时是否存在(并且它们不在密码更改屏幕上),重定向。

答案 3 :(得分:1)

我们曾经在我们的网站上使用母版页,在Page_Load事件中,我们将用户重定向到我们的changepassword.aspx页面。

我们还使用(或滥用,取决于您的观点)asp.net成员资格的Profile元素,并简单地将MustChangePassword条目设置为true。这意味着当他们登录时,您可以查看是否在其配置文件中设置了MustChangePassword条目并重定向到更改密码页面。它肯定会让他们留在页面上。

人们建议在每个页面加载中坚持使用是愚蠢的是正确的,但是开销是很小来检查用户配置文件中的一个元素而你至少可以强迫目前已登录用户更改密码。

答案 4 :(得分:-1)

在用户会话中设置一个标志,指示他们需要更改密码,然后检查所有其他页面中的该标志,并在必要时将其重定向到更改密码页面。

答案 5 :(得分:-1)

我在他的会话中设置了一个变量,然后在你的Global.asax Application_BeginRequest事件中检查Session变量并在需要时重定向。