【发布时间】:2012-01-24 20:40:47
【问题描述】:
我们的客户想要一个具有用户管理和不同角色的 ASP.NET Web 应用程序,但有一些非常奇怪的条件:
- 应用程序应该在浏览器中运行,用户应该能够根据他们给定的权限登录和做事。 (到目前为止很容易)
- 典型的情况是许多具有不同用户权限的人在同一台机器、相同的 Windows 帐户和相同的浏览器上工作。 (依次)他们仍然不能访问其他用户看到的数据或从他们的帐户中做任何事情。
对我来说,这可能意味着:
- 我不能使用任何类型的缓存。
- 我不能使用任何类型的 cookie。
- 我不能对 GET 参数做任何重要的事情。
- 我必须非常小心会话。
我仍然不知道如何(肯定地)阻止浏览器端缓存。我们试图解释这种东西是 windows 帐户的用途,但他似乎非常一致地认为他想把所有东西都放在一个帐户上。
这是一个现实的要求吗?在实现具有此类安全要求的应用程序时我必须记住什么?
这在我之前开发的应用程序中从来没有出现过问题,所以我不确定如何处理。
【问题讨论】:
-
多人从网吧登录gmail的要求有什么不同?只需确保用户退出并使用 HTTPS。
-
他们可能不是。 https 是否足以防止可能的浏览器端缓存?
-
@atticae - 无论缓存设置如何,HTTPS 都会导致会话结束时丢弃所有浏览器数据。但是,您仍然需要结束会话,这意味着您的用户必须小心始终注销。
-
而且您永远不应该通过 GET 更改数据,因为浏览器假定所有 GET 请求都是可重复的。如果您要从表单更改数据 POST 或使用 Javascript。
标签: c# asp.net architecture