如何在 BizTalk 2013 R2 中存储 JWT 令牌?

问题描述

我需要存储一个 JWT 令牌,以便在 BizTalk Server 2013 R2 中同一编排的多个实例中使用它。

如何在每个实例中存储和调用它?本地存储?注册表键?其他地方?

解决方法

您需要做的是拥有一个静态类的令牌管理器类。一旦实例化,它可以将您的 JWT 令牌保留在它的私有变量中,并且只要您不重新启动主机实例,它就会一直存在。您还需要保留上次获取令牌的时间,并在过期时获取新的令牌。

下面是它的样子的模拟示例。

public static class TokenManager
    {
        private static DateTime _sessionLastRefreshDate = DateTime.Now;
        private static string _JWTToken = string.Empty;
  
        public static string GetSession(...)
        {

            //get current date time
            DateTime now = DateTime.Now;
            //get the difference from the last time the token was fetched
            TimeSpan diff = now.Subtract(_sessionLastAccessDate);

            if (_sessionId == string.Empty || (diff.TotalMinutes >= *TokenTimeOut*)
            {
               // Fetch JWT Token here
                        _sessionId = *NewJWTToken*;
                        _sessionLastRefreshDate = DateTime.Now;
            }

            //give the session ID to the caller
            return _sessionId;
        }
    }

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...