我有一个多用户网络应用程序。如果管理员登录,则启用所有菜单。如果用户登录,则仅允许有限的功能。
当任务需要用户注意(例如分配给新项目)时,管理员会向用户发送带有正确页面URL的邮件。然后,用户可以导航到该页面(没有任何凭据)并采取必要的操作。
现在的问题是 - 当管理员登录系统时,会向用户触发邮件,如果他没有注销。用户点击(在电子邮件中)在另一个标签(IE / Chrome)中打开页面的链接(或在同一页面上),用户可以看到管理员可用的所有选项。
虽然这不是以生产为中心的问题,但我在客户端演示中将此安全漏洞升级。
此外,管理员和用户可通过适当的菜单项访问用户尝试访问的页面。这限制了我在页面加载时设置了一些条件。
现在,我怎样才能限制用户只看到允许的选项,无论谁已经登录?
答案 0 :(得分:0)
如果登录应用程序的最后一个用户是管理员而没有正确注销,则可以设置会话超时以自动在web.config中注销用户:
<sessionState mode="StateServer" timeout="20" cookieless="false"/>
有关详细信息:sessionState MSDN
答案 1 :(得分:0)
Cookie或HTTP身份验证将由同一浏览器的所有标签共享,因此如果您在登录后单击链接,您将保持登录状态。
可能的解决方案:
www.example.com/task/1232
”,则电子邮件中的链接为“www.example.com/task/1232/reauth
”,这将使应用程序在允许访问之前询问用户名和密码。您可以对此进行展开,并使用“www.example.com/task/1232/user/4545
”形式的网址,如果用户尚未以用户ID 4545登录,应用只会要求重新授权。