如何从单个会话处理Web应用程序的多个登录?

时间:2011-12-25 07:53:20

标签: asp.net asp.net-mvc security web-applications

在与我的客户进行的初步讨论中,我们认为让用户在不同的身份下登录不同的角色会更简单,例如:培训模块作者与培训消费者。但是,这似乎在某些方面存在使用会话的问题,即同一用户同时打开作者和受训者页面,但该站点仅存储一个cookie。

我如何解决这里的主要问题,即当我希望以另一个身份登录时,Web应用程序将我识别为已签名(记住)的用户?或者,我是否只是向用户说清楚,在尝试使用另一个之前,他们必须始终注销一个'persona'?

视为,例如上面两个角色的用户大多数时间都向用户提出了截然不同的观点,我们觉得在角色模型中不断分析分配给用户的角色集的复杂性正在迅速增加,而且我们一直都不是这样的场景。我想,我们采用了不同的用户模式。我还可以在这里探索哪些其他模型?

2 个答案:

答案 0 :(得分:0)

告诉我,如果我做对了,但大多数情况下,这是通过loggin输入一个具有不同角色的身份。 这样,您不需要为单个用户提供多个身份,并且您将根据此身份的角色呈现html。 (例如:身份角色集合中的最高特权角色)

如果您的客户希望坚持使用多个身份,那么我建议使用Session Wrapper 这样你就可以创建自己的会话结构并存储登录的角色。

答案 1 :(得分:0)

检查角色所需的代码量是最小的:

如果

(User.IsInRole( “作者”) {  //渲染作者的东西 } 其他 { //渲染其他东西 }

您还可以编写可以从任何页面调用的静态方法,还可以创建表示两组权限的角色。因此,你需要允许多个身份来完成你已经可以用角色做的事情的想法在这里没有多大意义。