public TokenProviderMiddleware(IHttpContextAccessor httpContextAccessor, ILoggerFactory DepLoggerFactory, IRepositoryWrapper repository) { _httpContextAccessor = httpContextAccessor; _repository = repository; var requestPath = _httpContextAccessor.HttpContext.Request.Path.ToString(); Log._logger = DepLoggerFactory.CreateLogger(requestPath); _serializerSettings = new JsonSerializerSettings { Formatting = Formatting.Indented }; var appsettingbuilder = new ConfigurationBuilder().AddJsonFile("appsettings.json"); var Configuration = appsettingbuilder.Build(); double expiretimespan = Convert.ToDouble(Configuration.GetSection("TokenAuthentication:TokenExpire").Value); TimeSpan expiration = TimeSpan.FromMinutes(expiretimespan); var signingKey = new SymmetricSecurityKey(Encoding.ASCII.GetBytes(Configuration.GetSection("TokenAuthentication:SecretKey").Value)); _options = new TokenProviderOptions { Path = Configuration.GetSection("TokenAuthentication:TokenPath").Value, Audience = Configuration.GetSection("TokenAuthentication:Audience").Value, Issuer = Configuration.GetSection("TokenAuthentication:Issuer").Value, SigningCredentials = new SigningCredentials(signingKey, SecurityAlgorithms.HmacSha256), IdentityResolver = GetIdentity, Expiration = expiration }; }
public TokenProviderMiddleware( RequestDelegate next, IOptions <TokenProviderOptions> options) { _next = next; _options = options.Value; ThrowIfInvalidOptions(_options); _serializerSettings = new JsonSerializerSettings { Formatting = Formatting.Indented }; }
private static void ThrowIfInvalidOptions(TokenProviderOptions options) { if (string.IsNullOrEmpty(options.Path)) { throw new ArgumentNullException(nameof(TokenProviderOptions.Path)); } if (string.IsNullOrEmpty(options.Issuer)) { throw new ArgumentNullException(nameof(TokenProviderOptions.Issuer)); } if (string.IsNullOrEmpty(options.Audience)) { throw new ArgumentNullException(nameof(TokenProviderOptions.Audience)); } if (options.Expiration == TimeSpan.Zero) { throw new ArgumentException("Must be a non-zero TimeSpan.", nameof(TokenProviderOptions.Expiration)); } if (options.IdentityResolver == null) { throw new ArgumentNullException(nameof(TokenProviderOptions.IdentityResolver)); } if (options.SigningCredentials == null) { throw new ArgumentNullException(nameof(TokenProviderOptions.SigningCredentials)); } if (options.NonceGenerator == null) { throw new ArgumentNullException(nameof(TokenProviderOptions.NonceGenerator)); } }