【问题标题】:Use HttpSessionState to store Token/Claims使用 HttpSessionState 存储 Token/Claims
【发布时间】:2015-04-02 17:06:39
【问题描述】:

有没有解决方案可以使用 HttpSessionState 来存储 Token ?

我知道我们可以启用会话以使身份验证 cookie 更小:

FederatedAuthentication.SessionAuthenticationModule.IsSessionMode = true;

据我了解,使用默认实现,令牌存储在内存中。 http://www.cloudidentity.com/blog/2010/05/26/YOUR-FEDAUTH-COOKIES-ON-A-DIET-ISSESSIONMODE-TRUE/

即使设置了自定义提供程序,也不会使用 HttpSession。

Thinktecture IdentityModel 允许我们通过implementing ITokenCacheRepository 使用自定义令牌存储库,但它需要外部存储,使用会话可能不好(过期、范围...)。

为什么默认的 TokenCache 使用内存解决方案而不是主机会话提供程序?有没有一种简单安全的方式来使用主机的会话状态?

【问题讨论】:

    标签: asp.net-mvc session wif claims-based-identity thinktecture-ident-model


    【解决方案1】:

    虽然我没有尝试将 Token 存储在 Session 中,但我使用 Redis 缓存从 Thinktecture.IdentityModel 实现了ITokenCacheRepository

    代码可在此处获得:https://github.com/guillaume-fr/RedisTokenCache

    这可能会帮助任何正在寻找在云/WebFarm 环境中的服务器端存储令牌的方法的人。我不会接受我的回答,因为它没有说明我们如何使用 Session 或为什么我们不能。

    【讨论】:

    • 寻找基于 httpSession 实现 ITokenCacheRepository 我找到了这篇文章。对这种方法有什么问题有任何见解吗?
    • 我不记得了,但我想到了:检查 httpSession 存储在哪里(如果内存,它将在云/网络场中失败)它必须是安全的并且可以跨实例工作,确保在您需要管道中的令牌时 httpSession 已经可用。
    猜你喜欢
    • 2013-04-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-17
    • 2017-01-07
    • 2023-03-28
    • 2015-02-11
    • 2019-10-10
    相关资源
    最近更新 更多