我们在ASP.NET MVC 5应用程序中使用WSFederationAuthenticationModule通过Windows Azure ACS对用户进行身份验证。在身份验证成功后,我们尝试了多种方法来保存会话中的一些用户特定数据,但每当我们写入会话对象时,我们都会得到异常“会话状态在此上下文中不可用”。我们最喜欢的是事件System.IdentityModel.Services.FederatedAuthentication.WSFederationAuthenticationModule.SignedIn但当然此时会话不存在。建议将当前经过身份验证的用户的初始数据写入会话的位置在哪里?
答案 0 :(得分:0)
您是否考虑过使用ClaimsAuthenticationManager?这样做的好处是,您可以访问经过身份验证的用户的当前声明(在执行应用程序代码之前),运行您需要运行的任何查询,然后将新声明填充到委托人的声明集中。我之前使用过这种技术来处理你所描述的类似情况。
如果您确实需要访问会话数据,那么我想您要查看SessionSecurityTokenHandler类。