Pat*_*ote 9 session-variables self-hosting owin katana
我有一个在OWIN进程中托管的示例Web API(自托管,而不是在IIS中).我在我的控制器中获得了一个JWT令牌,我希望能够在应用程序的另一部分中进行检索,这是一个实现NserviceBus IMutateOutgoingTransportMessages的类.在我的其他Web应用程序POC(在IIS中托管)中,我使用了一个简单的会话变量,它工作得很好.但我想知道在我的新OWIN自托管环境中最好的方法是什么?静态类中的静态属性?
这个问题非常广泛,如果不详细了解您的具体需求,很难回答。以下是我对你的问题的解释:
当然,一旦多个请求同时到达应用程序,静态类中一个令牌的一个静态属性就会开始破坏。实现一个维护令牌列表的类可能是一个解决方案,尽管我无法告诉您应该使用什么密钥来识别每个令牌。接口详细信息可能会有所不同,具体取决于您是否需要多次检索令牌等情况。
线程安全问题将适用于此类的所有处理和实现。使用不可变集合和函数式编程实践作为灵感可能会有所帮助。
如果挥之不去的代币造成了问题(从安全角度来看,如果没有其他问题,它们可能会出现问题),那么您需要弄清楚如何确保代币不会超出其受欢迎程度,即使该周期由于某种原因未完成。
看看您Session在 POC 中如何用作解决方案,我假设您想要一些类似的行为,并且不应允许一个用户同时携带两个令牌。您可以将令牌存储在数据库中,甚至可以存储在本地文件系统中,从而使维护和有效性成为一个单独的问题。
OWIN 自托管应用程序已经可以使用类似缓存的功能实现,也许其中之一可以作为您自己实现所有内容的快捷方式。
如果这个代币业务实际上是在应用程序中引入状态的唯一原因,那么恕我直言,最好的解决方案是重新考虑您的架构,以便应用程序可以保持无状态。
| 归档时间: |
|
| 查看次数: |
1035 次 |
| 最近记录: |