【问题标题】:Web API Upgrade .Net CoreWeb API升级.Net Core
【发布时间】:2022-11-23 20:13:56
【问题描述】:
  1. actionContext.Request.Content.IsMimeMultipartContent())

    如果我将 HttpActionContext 更新为 ActionExecutingContext,我会收到错误消息“CS1061:ActionExecutingContext 不包含请求的定义”

    1. IAuthenticationFilter 不可用

    2. Request.Content.ReadAsMultipartAsync

    3. HttpContextWrapper

    当我将 FW4.8 升级到 .Net6 时,我希望确定如何实现这些

【问题讨论】:

    标签: asp.net-core-webapi upgrade .net-6.0 .net-4.8


    【解决方案1】:

    “CS1061:ActionExecutingContext 不包含定义 要求”。

    HttpContentMultipartExtensions.IsMimeMultipartContent用于判断指定内容是否为MIME multipart内容。

    在 Asp.Net Core 中,您可以使用属性 HttpRequest.HasFormContentType 检查请求是否为 multipart/form-data:

    public override void OnActionExecuting(ActionExecutingContext actionContext)
    {
        if (!actionContext.HttpContext.Request.HasFormContentType){}
    } 
    

    也可以参考Mathieu Renda's answer

    IAuthenticationFilter 不可用。

    Asp.net core 不包含IAuthenticationFilter,如果你想对用户进行认证,可以参考Brando Zhang's answer

    错误:HttpRequest 不包含内容的定义

    可以看看这个官方文档:Upload files in ASP.NET Core

    你也可以参考这两个帖子来解决你的问题:ReadAsMultipartAsync equvialent in .NET core 2MultipartFormDataStreamProvider for ASP.NET Core 2

    HttpContextWrapper 的替代品

    HttpContextWrapper 类派生自 HttpContextBase 类,并用作 HttpContext 类的包装器。所以我觉得在Asp.Net Core中直接访问HttpContext是可以的:Access HttpContext in ASP.NET Core

    希望这可以帮到你。

    【讨论】:

      猜你喜欢
      • 2018-08-03
      • 2018-05-08
      • 2017-07-05
      • 2021-10-13
      • 1970-01-01
      • 2022-06-13
      • 1970-01-01
      • 2018-01-29
      • 1970-01-01
      相关资源
      最近更新 更多