Exemplo n.º 1
0
        /// <summary>
        /// 验证权限
        /// </summary>
        /// <param name="filterContext"></param>
        public override void OnActionExecuting(ActionExecutingContext context)
        {
            //如果存在身份信息
            if (Current.CurrentUser != null)
            {
                if (Code == AuthCodeEnum.Public)
                {
                    return;
                }
            }
            else
            {
                if (Code == AuthCodeEnum.Public)
                {
                    return;
                }

                var result = new ResultModelT <String>
                {
                    body    = "",
                    success = false,
                    code    = System.Net.HttpStatusCode.Unauthorized,
                    message = "请重新登陆",
                };
                context.Result = new BadRequestObjectResult(JsonHelper.SerializeJSON(result));
            }
        }
Exemplo n.º 2
0
        public override OkObjectResult Ok([ActionResultObjectValue] object value)
        {
            var result = new ResultModelT <object>();

            result.Success("请求成功", value);
            return(base.Ok(result));
        }
Exemplo n.º 3
0
        // This method gets called by the runtime. Use this method to add services to the container.
        public void ConfigureServices(IServiceCollection services)
        {
            services.AddControllers();

            #region Swagger
            services.AddSwaggerGen(c =>
            {
                c.SwaggerDoc("v1", new OpenApiInfo
                {
                    Version     = "v1.1.0",
                    Title       = "WebAPI",
                    Description = "WebAPI"
                });
            });
            #endregion

            //模型绑定 特性验证,自定义返回格式
            services.Configure <ApiBehaviorOptions>(options =>
            {
                options.InvalidModelStateResponseFactory = actionContext =>
                {
                    //获取验证失败的模型字段
                    var errors = actionContext.ModelState
                                 .Where(e => e.Value.Errors.Count > 0)
                                 .Select(e => e.Value.Errors.First().ErrorMessage)
                                 .ToList();
                    var str = string.Join("|", errors);
                    //设置返回内容
                    var result = new ResultModelT <String>
                    {
                        code       = System.Net.HttpStatusCode.BadRequest,
                        success    = false,
                        body       = "",
                        message    = str,
                        totalCount = 0
                    };
                    return(new BadRequestObjectResult(result));
                };
            });

            services.AddSingleton <IHttpContextAccessor, HttpContextAccessor>();

            services.AddControllers().AddControllersAsServices();

            //redis
            var redisConnectionString = ((ConfigurationSection)Configuration.GetSection("RedisConnectionStrings:Connection")).Value;
            var redisInstanceName     = ((ConfigurationSection)Configuration.GetSection("RedisConnectionStrings:InstanceName")).Value;
            services.AddSingleton(new RedisCacheHelper(redisConnectionString, redisInstanceName));
        }