public static void Insert <TResponse>(IProtocolRequest <TResponse> request, AuthenticationContext authenticationContext)
     where TResponse : IProtocolResponse
 {
     lock (_lock)
     {
         _authenticationContexts.Add(request.GetHashCode(), authenticationContext);
     }
 }
        public static AuthenticationContext Get <TResponse>(IProtocolRequest <TResponse> request)
            where TResponse : IProtocolResponse
        {
            lock (_lock)
            {
                if (_authenticationContexts.TryGetValue(request.GetHashCode(), out AuthenticationContext context))
                {
                    return(context);
                }

                return(null);
            }
        }