public RouteSessionAuthenticationFilter(OperationContext operationContext, IRouteSessionTokenExtractor routeSessionTokenExtractor, IApplicationEventDispatcher dispatcher) { _operationContext = operationContext; _routeSessionTokenExtractor = routeSessionTokenExtractor; _dispatcher = dispatcher; }
public async Task Invoke(HttpContext context, OperationContext operationContext, IRouteSessionTokenExtractor routeSessionTokenExtractor, IApplicationEventDispatcher dispatcher) { var sessionToken = routeSessionTokenExtractor.ExtractSessionToken(context.Request, "token"); if (!string.IsNullOrEmpty(sessionToken)) { var session = await dispatcher.Dispatch(new SessionQuery(sessionToken)); if (session != null) { operationContext.Session = session; operationContext.SessionId = sessionToken; } } await _next(context); }