以下是问题情节:
假设您有一个包含以下内容的多页ASP.NET网站 要求:
当前登录用户的用户特定数据已加载,并且在用户会话期间需要在应用程序的每个单独页面上显示。
应用程序本身只允许一定数量的用户登录。
下次特定用户登录时,应将用户返回到最后访问的页面。
根据这些信息,简要介绍如何使用ASP.NET来管理应用程序的状态以满足这些需求?
这是我的想法和原因。请提供你的。
当前用户特定数据 登录用户已加载并且是 在每个页面上都需要 用户期间的应用程序 会话。
这对我来说,面试官希望看看我是否会建议使用母版页作为一种方法来提供在每个页面上显示相同内容的通用方法。
应用程序本身只允许一个 要记录的特定数量的用户 在一次。
由于用户数量有限,因为缩放不是一个问题,因为性能原因可以将此信息放在Session对象中,或者这是一个陷阱,一些方法是更好?
下次特定用户登录时, 用户应该返回到 最后一页访问
Cookie似乎是跟踪最后一页访问权限的最佳方法,因为这似乎不是关键信息。
如果您想留下最佳印象,请告诉我您将如何处理这些问题
随时提供输入或评论任何订单项。
谢谢!
答案 0 :(得分:4)
就(3)而言,考虑共享PC。用户A使用其基于站点的用户名/密码登录网站。完成一大堆工作并关闭浏览器。然后,USer B使用他们的详细信息在相同的PC上登录到同一站点。但是,他们将从用户A获取cookie并被重定向到他们看到的最后一页。这是因为Cookie与浏览器/操作系统用户绑定,因为您可能会在应用程序中单独应用站点安全性。
在这种情况下,您需要将用户名放入cookie(加密)或使用服务器端方法存储位置
答案 1 :(得分:1)
以下是我的想法:
第三项非常棘手。如果用户上次查看已被删除的对象,该怎么办?如果用户从一台计算机登录,做了一些工作,然后从另一台计算机或浏览器同时登录,那么预期的行为是什么?我一定会问这些问题,尤其是要表明我理解这样一个要求的含义。如果他们的回答让您相信他们正在寻找一个简单的解决方案,请使用简单的解决方案。否则,请将您的回复调整为尽可能复杂。
答案 2 :(得分:1)
只是一个小小的想法..如果系统在“Farmed”环境中运行,会话数据可以被清除,需要以某种方式处理。
http://www.beansoftware.com/ASP.NET-Tutorials/Store-Session-State-Server.aspx