public StatefulAuthenticationOptions(StatefulTokenProvider tokenProvider) : base("Bearer") { if (tokenProvider == null) throw new ArgumentNullException("repository"); TokenProvider = tokenProvider; }
/// <summary> /// Adds stateful token processing to OWIN application pipeline; Options with token repository must be set. /// </summary> /// <param name="userFromToken">Async function to retrieve unique username from token</param> public static IAppBuilder UseStatefulAuthentication(this IAppBuilder app, Func<string, Task<string>> userFromToken) { if (app == null) throw new ArgumentNullException("app"); if (userFromToken == null) throw new ArgumentNullException("userFromToken"); var repo = new StatefulTokenProvider(userFromToken); var options = new StatefulAuthenticationOptions(repo); app.Use(typeof(StatefulAuthenticationMiddleware), app, options); return app; }