通过WSFederationAuthenticationModule进行身份验证后填充会话的位置

时间:2014-02-05 15:46:49

标签: session authentication azure asp.net-mvc-5 acs

我们在ASP.NET MVC 5应用程序中使用WSFederationAuthenticationModule通过Windows Azure ACS对用户进行身份验证。在身份验证成功后,我们尝试了多种方法来保存会话中的一些用户特定数据,但每当我们写入会话对象时,我们都会得到异常“会话状态在此上下文中不可用”。我们最喜欢的是事件System.IdentityModel.Services.FederatedAuthentication.WSFederationAuthenticationModule.SignedIn但当然此时会话不存在。建议将当前经过身份验证的用户的初始数据写入会话的位置在哪里?

1 个答案:

答案 0 :(得分:0)

您是否考虑过使用ClaimsAuthenticationManager?这样做的好处是,您可以访问经过身份验证的用户的当前声明(在执行应用程序代码之前),运行您需要运行的任何查询,然后将新声明填充到委托人的声明集中。我之前使用过这种技术来处理你所描述的类似情况。

如果您确实需要访问会话数据,那么我想您要查看SessionSecurityTokenHandler类。