6K Star 11.8K Fork 4K

GVPdotNET China / Furion

 / 详情

动态API使用[Consumes("application/x-www-form-urlencoded")]特性可能导致项目启动失败.

已完成
成员
创建于  
2021-04-27 14:29

Furion 版本号

2.1.10


Web 项目类型

  • WebApi
  • Mvc
  • Razor Pages
  • Blazor Server

描述你的问题

在动态API中添加多个特性
[DisableRequestSizeLimit]
[HttpPost]
[UnitOfWork]
[NonValidation]
[Consumes("application/x-www-form-urlencoded")]
可能会导致项目启动失败(未将对象引用设置到对象的实例).


代码或代码仓库

异常代码位置
Furion.DynamicApiController->
ConfigureClassTypeParameter->

  if (_dynamicApiControllerSettings.ModelToQuery.Value)
            {
                var httpMethods = action.Selectors
                    .SelectMany(u => u.ActionConstraints
                        .SelectMany(u => (u as HttpMethodActionConstraint).HttpMethods));
                if (httpMethods.All(u => u.Equals("GET") || u.Equals("HEAD"))) return;
            }

其中 u as HttpMethodActionConstraint的操作可能导致null异常.

期待结果

SelectMany(u => u.ActionConstraints)应排除HttpMethodActionConstraint之外的特性


评论 (0)

Proud_Cat 创建了任务
Proud_Cat 关联仓库设置为dotNET China/Furion
Proud_Cat 修改了描述
Proud_Cat 修改了描述
百小僧 任务状态待办的 修改为进行中
百小僧 负责人设置为百小僧
百小僧 添加了
 
漏洞
标签
百小僧 添加了
 
优化
标签
百小僧 里程碑设置为Furion 2021
百小僧 关联分支设置为master
百小僧 计划截止日期设置为2021-04-27
百小僧 计划开始日期设置为2021-04-27
百小僧 置顶等级设置为
百小僧 优先级设置为严重
百小僧 通过 dotnetchina/Furion Commit ffe036a任务状态进行中 修改为已完成
百小僧 置顶等级 修改为不置顶
百小僧 关联分支master 修改为未关联
展开全部操作日志

登录 后才可以发表评论

状态
负责人
里程碑
Pull Requests
关联的 Pull Requests 被合并后可能会关闭此 issue
分支
开始日期   -   截止日期
-
置顶选项
优先级
参与者(1)
7985226 proud cat 1616052121
C#
1
https://gitee.com/dotnetchina/Furion.git
git@gitee.com:dotnetchina/Furion.git
dotnetchina
Furion
Furion

搜索帮助