static void PrintMenu(ISessionKeyProvider sessionKeyProvider) { Console.Clear(); Console.WriteLine($"Session Key: {sessionKeyProvider.SessionKey}"); Console.WriteLine("C) Change Session Key"); Console.WriteLine("ESC) Close"); }
public static ISessionKeyProvider GetProvider() { ISessionKeyProvider provider = GetProviderByConfig() ?? GetProviderByRegister(); if (provider == null) { throw new WebException("没有定义" + typeof(ISessionKeyProvider).FullName + "的实现"); } return(provider); }
/// <summary> /// 注册单例key提供器,请确保<paramref name="provider"/>是单例的 /// </summary> /// <param name="provider"></param> public static void RegisterSessionKeyProvider(ISessionKeyProvider provider) { if (NotRegistered()) { lock (_syncObject) { if (NotRegistered()) { _singletonProvider = provider; } } } }
public static void RegisterSessionKeyProvider(Type providerType, bool isSingleton) { if (NotRegistered()) { lock (_syncObject) { if (NotRegistered()) { if (isSingleton) { _singletonProvider = Activator.CreateInstance(providerType) as ISessionKeyProvider; } else { _providerType = providerType; } } } } }
public ApplySessionFilterHeader(ISessionKeyProvider sessionKeyProvider) { this.sessionKeyProvider = sessionKeyProvider; }
public FilterIncomingMessages(ISessionKeyProvider sessionKeyProvider) { this.sessionKeyProvider = sessionKeyProvider; }
/// <summary> /// 注册单例key提供器,请确保<paramref name="provider"/>是单例的 /// </summary> /// <param name="provider"></param> public static void RegisterSessionKeyProvider(ISessionKeyProvider provider) { SessionKeyProvider.RegisterSessionKeyProvider(provider); }
public static void ApplySessionFilter(this EndpointConfiguration endpointConfiguration, ISessionKeyProvider sessionKeyProvider) { var pipeline = endpointConfiguration.Pipeline; pipeline.Register(new ApplySessionFilterHeader(sessionKeyProvider), "Adds session key to outgoing messages"); pipeline.Register(new FilterIncomingMessages(sessionKeyProvider), "Filters out messages that don't match the current session key"); }