【问题标题】:Is it OK to use NaiveSessionCache from Azure-Samples Azure Active Directory OpenId Connect是否可以从 Azure-Samples Azure Active Directory OpenId Connect 使用 NaiveSessionCache
【发布时间】:2023-03-23 17:40:02
【问题描述】:

我们正在编写一个类似于 Azure-Samples/active-directory-dotnet-webapp-webapi-openidconnect

该示例包括NaiveSessionCache.cs,它将访问令牌存储在 UserObjectId 的 ASP.NET 会话状态中。 代码看起来很合理,但我对“Naive”这个名字有点担心。

我有什么理由不应该在生产中使用它吗?

Vittorio Bertocci 的文章The New Token Cache in ADAL v2,描述 FileCache(用于桌面应用程序) 和用于实现TokenCache 的数据库EFADALTokenCache 替代方案。 但是如果我可以使用 session 代替,我觉得使用 SQL DB 太重了。

谁能给出使用会话的任何缺点?

【问题讨论】:

    标签: azure-active-directory adal azure-ad-graph-api


    【解决方案1】:

    如果您的场景允许(例如,当没有用户主动登录时您不需要访问)并且您正确保护它,则使用会话本身没有反指示。然而,这些示例中的类仅用于演示通用缓存组件的功能,并没有按原样在生产中使用:您需要添加适当的错误处理、检测和所有软件质量特性您通常会申请自己的生产软件。

    【讨论】:

      【解决方案2】:

      根据我的经验,使用会话过多地依赖于 Web 服务器和应用程序域。我遇到了会话重置/消失的问题。谷歌一下,你会发现很多人都有类似的问题。我们为小型单服务器 Web 应用程序选择了内存中令牌缓存。对于更大的应用程序,特别是如果我们需要一个多服务器应用程序,我肯定会做一个数据库实现。

      【讨论】:

        猜你喜欢
        • 2017-06-21
        • 2020-10-30
        • 1970-01-01
        • 2017-09-08
        • 1970-01-01
        • 1970-01-01
        • 2021-06-07
        • 2019-05-07
        • 1970-01-01
        相关资源
        最近更新 更多