我们的客户想要一个具有用户管理和不同角色的ASP.NET Web应用程序,但有一些非常奇怪的条件:
对我来说,这可能意味着:
我仍然不知道如何(确定地)阻止浏览器端缓存。我们试图解释这种东西是Windows帐户的用途,但他似乎非常一致,他想把它全部保存在一个帐户上。
这是一个现实的要求吗?在实现具有此类安全要求的应用程序时,我需要记住哪些内容?
这对我之前开发的应用程序来说从来都不是问题,所以我不确定如何处理这个问题。
答案 0 :(得分:4)
这些Web应用程序要求是否真实可行?
是的。网上银行应用程序通常通过在一段时间不活动后放弃其会话来实现此目的。此外,如果您关闭浏览器,则应放弃会话。手动注销是一个好主意。
其他一些观点
我不能使用任何类型的缓存。
不在网络浏览器上,但是会话缓存没问题。
我不能使用任何类型的cookie。
会话cookie除外
我无法对GET参数做任何重要的事情。
是的
我必须非常小心会议。
这可能总是一个好主意。
答案 1 :(得分:2)
只要您使用会话(默认情况下与ASP.Net提供),您应该没问题。只需确保用户注销或执行相当短的自动注销。
答案 2 :(得分:1)
只要您不打算使用Windows集成身份验证,那么要求就不那么糟糕了。如果您使用的是Windows身份验证,那么不会在没有添加可用性问题的情况下实际满足要求#2。
但是,即使您使用的是表单身份验证,也需要确保用户在完成后退出网站(或关闭所有浏览器窗口)。未能注销可以(并且可能会)让下一个人只需继续浏览并查看前一个人保存的所有数据。
您可能需要向业务用户解释这一点,以便他们了解它,因为除非您这样做,否则他们可能会因为未能注销而责怪您。许多最终用户不知道这些东西是如何工作的,而且通常由我们以非技术(或至少可理解的)术语向他们解释技术的局限性。
答案 3 :(得分:0)
是的,这些要求非常现实。实际上,您应该考虑每个ASP.NET应用程序 您需要确保在应用程序中使用正确的会话和cookie管理,会话缓存并使用成员资格和角色提供程序(自定义或内置)。 当然,之前已登录的用户需要注销,或者您可以强制注销。