/// <summary> /// Build context based on ServiceContextAccessor, security token and header dictionary. /// </summary> /// <typeparam name="T">Context type</typeparam> /// <param name="securityTokenAccessor">Security token accessor</param> /// <param name="headers">Header dictionary</param> /// <param name="serviceContextAccessor"> Service Context Accessor instance </param> /// <returns>Context</returns> public static DefaultServiceContext BuildContext(ISecurityTokenAccessor securityTokenAccessor, IDictionary <string, IEnumerable <string> > headers ) { var contextCollection = new Dictionary <string, IEnumerable <string> >(); foreach (var kv in securityTokenAccessor.ContextItems) { contextCollection.Add(kv.Key, new[] { kv.Value.ToString() }); } if (headers != null) { foreach (var h in headers) { if (!contextCollection.ContainsKey(h.Key)) { contextCollection.Add(h.Key, h.Value); } } } return(contextCollection.Keys.Count > 0 ? Deserialize(contextCollection) : new DefaultServiceContext()); }
public TokenAuthenticationMiddleware(RequestDelegate next, ISecurityTokenAccessor securityTokenAccessor) { _next = next; this._securityTokenAccessor = securityTokenAccessor; }