Ejemplo n.º 1
0
        /// <summary>
        ///     判断Session的地方
        /// </summary>
        /// <param name="context"></param>
        /// <returns></returns>
        public async Task Invoke(HttpContext context)
        {
            if (context.Request.Method == "OPTIONS")
            {
                await _next.Invoke(context);
            }
            var url = context.Request.Path.ToString().ToLower();

            if (CheckSessionWhiteList(url))
            {
                await _next.Invoke(context);
            }
            else
            {
                string sessionId = context.Request.Headers["SessionId"];
                context.Items.Add("SessionId", sessionId);

                var check = CheckSessionId(sessionId);

                if (check)
                {
                    await _next.Invoke(context);
                }
                else
                {
                    await MiddlewareExtensions.HandleExceptionAsync(context, 802, "SessionId 验证失败");
                }
            }
        }
        public async Task Invoke(HttpContext context)
        {
            try
            {
                await _next.Invoke(context);
            }
            catch (Exception ex)
            {
                await MiddlewareExtensions.HandleExceptionAsync(context, 505, "服务端发生错误:" + ex.Message);

                _logger.LogError(ex.Message, ex);
            }
        }