如果用户手动更改网址,则不返回网页

时间:2014-06-12 23:22:27

标签: c# asp.net-mvc

我正在创建一个网站,它有多个页面,用户需要逐步完成这些页面。例如,第一页www.website.com/personal.html会要求用户填写他们的个人信息,然后下一页www.website.com/favorite.html会询问有关他们最爱的其他问题等等......

我想做的是不允许用户手动输入地址www.website.com/personal.html并再次访问该页面。我只允许通过网站流程访问该页面,或者我有一个标签或指向该地址的链接。

有没有办法阻止这样的事情?

3 个答案:

答案 0 :(得分:2)

如果你正在使用MVC,你为什么要谈论静态html页面呢?

只需使用一个基于工作流状态返回多个视图的操作方法。这样,用户就无法根据URL进行定向(因为每个视图的URL都相同)。

答案 1 :(得分:0)

您可以使用referer标头来检测链接的来源,但这很容易伪造。假设您有一个会话数据库并且您正在设置会话cookie的某种方式,您可以使用会话数据存储状态信息,如果您收到对personal.html的请求,如果保存的状态不表示当前页面,则重定向。

答案 2 :(得分:0)

不,不是真的。您可以检查推荐人,但这很容易被欺骗。您可以使用cookie来指示用户已经处于每个步骤,但同样容易被规避。

如果您在每个步骤后保存信息,那么您不能只检查用户是否已经输入了他的个人信息,如果是,请将他重定向到下一步?

唯一可靠的方法是检查服务器端保存的数据并根据该行为进行操作。