使用WIF安全令牌服务将用户的asp.net会话限制为1

时间:2012-08-08 23:58:49

标签: asp.net security token wif

我们正在构建一组Web应用程序,它们都使用自己独特的角色提供程序,使用sql server并利用Windows Identity Foundation提供安全令牌服务来使用Active Directory处理成员资格。此解决方案还提供单点登录的好处。一个疏忽只允许用户进行一次会话。跟踪用户是否已经拥有活动会话似乎很容易实现,如果确定用户的会话已经在其他地方登录,那么它是如何处理用户的会话的。

我的问题是,如果用户尝试生成其他会话,建议的杀死现有用户会话的方法是什么?还要建议用户已检测到现有会话,并通过继续,现有会话将被终止。 (这部分也似乎微不足道......)

包含2个网络应用和STS标识应用的示例方案:

  • 用户尝试访问应用程序A:
  • STS Identity extension确定用户尚未登录,提供声明并缓存用户/会话标识符。
  • 用户尝试在不同的计算机上访问应用程序B. (如果使用相同的会话,他们可以访问应用程序B)
  • STS Identity确定用户具有活动会话并拒绝登录。

似乎还有其他一些发行人要克服,例如......。

  • 如果用户主动保持会话活动,如何从应用程序A更新登录用户缓存。
  • 如何通过关闭浏览器或会话超时来处理未明确注销的用户。
  • 其他问题???

任何指导都将不胜感激。

1 个答案:

答案 0 :(得分:2)

我们选择在应用程序级别使用存储用户会话ID的简单表来处理并发。如果在其他地方创建了应用程序的新会话,则会终止现有会话,并将使用重定向回STS,并带有消息(在查询字符串中携带),以及它们被重定向回登录页面的原因。 / p>