Ank*_*jay 6 c# asp.net asp.net-mvc session-cookies angularjs
我正在使用一个Web应用程序,它是MVC 5 + Angular JS混合.有没有身份验证的Web应用程序和匿名用户可以来问价格的某些服务.为了获得价格,用户需要回答几页中的一些问题.这是app的流程.
用户点击按钮获取价格
生成请求的唯一URI,用户将重定向到问题页面
用户回答问题,用户提交答案.问题分布在通过角度路由导航的多个页面上.答案将在页面导航中保存回服务器.
一旦用户提交答案,系统(服务器)就会生成价格并将其显示给用户.
目前,如果用户已经为URI添加了书签,他可以在几天之后返回,并从他离开的地方继续.我想阻止这种行为.
我在MVC中有哪些不同的选择?我可以想到以下几点:
使用HttpCookie有效期
保存数据库中的最后访问时间并验证用户是否已达到规定的时间范围内?
我想避免HttpSession.我倾向于使用,HttpCookie因为它看起来是最简单的选择.
如果我们HttpCookie选择,是否有任何副作用,我需要记住?
我可以在MVC中找到其他替代方案吗?
我最后选择了会话cookie。我对唯一的 ID 进行了哈希处理,并将其与盐一起保存在 cookie 中。我认为这是一个合理的方法,原因如下:
匿名用户会话将是短暂的。有一次,他关闭浏览器,cookie 就被删除了。
如果用户为 URI 添加书签,我会在Http Request. 如果未找到会话 cookie,我会将用户重定向到质询页面。
我选择了 MD5 算法进行哈希处理。我知道它容易发生冲突,但比 SHA 更快。由于我没有在 cookie 中存储密码等敏感信息,所以我想应该没问题。