ASP.NET Core:是否可以使用HttpClient获取文件并直接返回?

2024-01-25

我有一个内部 API 可以获取并返回文件结果。但是,此 API 没有任何身份验证/角色/权限检查的概念,并且无法修改以执行此操作。

我想在现有的 ASP.NET Core 2 Web API 上创建一个 Web API 端点来进行权限检查、调用此内部 API 并将文件结果返回给 Web 客户端。

是否可以让包装器 API 端点仅将其获取的任何内容作为文件结果传递,而无需重建响应(例如,指定文件名、内容类型等)?文件可以是图像、pdf、文档。我希望这个包装器 API 只进行权限检查并使用某种 fileId 调用内部 API 端点,而不需要了解内容长度或类型。


根据 @chris-pratt 的建议,事实证明重建结果并不像我最初预期的那么复杂。我最终以这种方式实现,以防有人需要在这里做类似的事情。

... some validation logic outside the scope of the question...
using (HttpClient client = new HttpClient())
                {
                    var file = await client.GetAsync($"{someURL}/{id}");
                    return new FileContentResult(await file.Content.ReadAsByteArrayAsync(), file.Content.Headers.ContentType.MediaType);
                }
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ASP.NET Core:是否可以使用HttpClient获取文件并直接返回? 的相关文章

  • WPF DataGrid 多选

    我读过几篇关于这个主题的文章 但很多都是来自 VS 或框架的早期版本 我想做的是从 dataGrid 中选择多行并将这些行返回到绑定的可观察集合中 我尝试创建一个属性 类型 并将其添加到可观察集合中 它适用于单个记录 但代码永远不会触发多个
  • 没有特殊字符的密码验证器

    我是 RegEx 的新手 已经进行了大量搜索 但没有找到任何具体内容 我正在编写一个验证密码字符串的正则表达式 可接受的字符串必须至少具有 4 种字符类型中的 3 种 数字 小写字母 大写字母 特殊字符 我对包含有一个想法 也就是说 如果这
  • 根据属性的类型使用文本框或复选框

    如果我有这样的结构 public class Parent public string Name get set public List
  • 如何从本机 C(++) DLL 调用 .NET (C#) 代码?

    我有一个 C app exe 和一个 C my dll my dll NET 项目链接到本机 C DLL mynat dll 外部 C DLL 接口 并且从 C 调用 C DLL 可以正常工作 通过使用 DllImport mynat dl
  • -webkit-box-shadow 与 QtWebKit 模糊?

    当时有什么方法可以实现 webkit box shadow 的工作模糊吗 看完这篇评论错误报告 https bugs webkit org show bug cgi id 23291 我认识到这仍然是一个问题 尽管错误报告被标记为RESOL
  • 对类 static constexpr 结构的未定义引用,g++ 与 clang

    这是我的代码 a cp p struct int2 int x y struct Foo static constexpr int bar1 1 static constexpr int2 bar2 1 2 int foo1 return
  • 需要帮助优化算法 - 两百万以下所有素数的总和

    我正在尝试做一个欧拉计划 http projecteuler net问题 我正在寻找 2 000 000 以下所有素数的总和 这就是我所拥有的 int main int argc char argv unsigned long int su
  • 重载 (c)begin/(c)end

    我试图超载 c begin c end类的函数 以便能够调用 C 11 基于范围的 for 循环 它在大多数情况下都有效 但我无法理解和解决其中一个问题 for auto const point fProjectData gt getPoi
  • 方程“a + bx = c + dy”的积分解

    在等式中a bx c dy 所有变量都是整数 a b c and d是已知的 我如何找到整体解决方案x and y 如果我的想法是正确的 将会有无限多个解 由最小公倍数分隔b and d 但我只需要一个解决方案 我可以计算其余的 这是一个例
  • ASP.NET Core 3.1登录后如何获取用户信息

    我试图在登录 ASP NET Core 3 1 后获取用户信息 如姓名 电子邮件 id 等信息 这是我在登录操作中的代码 var claims new List
  • 在 Unity 中实现 Fur with Shells 技术

    我正在尝试在 Unity 中实现皮毛贝壳技术 http developer download nvidia com SDK 10 5 direct3d Source Fur doc FurShellsAndFins pdf Fins 技术被
  • 为什么这个字符串用AesCryptoServiceProvider第二次解密时不相等?

    我在 C VS2012 NET 4 5 中的文本加密和解密方面遇到问题 具体来说 当我加密并随后解密字符串时 输出与输入不同 然而 奇怪的是 如果我复制加密的输出并将其硬编码为字符串文字 解密就会起作用 以下代码示例说明了该问题 我究竟做错
  • x:将 ViewModel 方法绑定到 DataTemplate 内的事件

    我基本上问同样的问题这个人 https stackoverflow com questions 10752448 binding to viewmodels property from a template 但在较新的背景下x Bind V
  • C# xml序列化必填字段

    我需要将一些字段标记为需要写入 XML 文件 但没有成功 我有一个包含约 30 个属性的配置类 这就是为什么我不能像这样封装所有属性 public string SomeProp get return someProp set if som
  • C# 动态/expando 对象的深度/嵌套/递归合并

    我需要在 C 中 合并 2 个动态对象 我在 stackexchange 上找到的所有内容仅涵盖非递归合并 但我正在寻找能够进行递归或深度合并的东西 非常类似于jQuery 的 extend obj1 obj2 http api jquer
  • 为什么 isnormal() 说一个值是正常的,而实际上不是?

    include
  • 如何在 Android 中使用 C# 生成的 RSA 公钥?

    我想在无法假定 HTTPS 可用的情况下确保 Android 应用程序和 C ASP NET 服务器之间的消息隐私 我想使用 RSA 来加密 Android 设备首次联系服务器时传输的对称密钥 RSA密钥对已在服务器上生成 私钥保存在服务器
  • 编译时展开 for 循环内的模板参数?

    维基百科 here http en wikipedia org wiki Template metaprogramming Compile time code optimization 给出了 for 循环的编译时展开 我想知道我们是否可以
  • 有没有办法让 doxygen 自动处理未记录的 C 代码?

    通常它会忽略未记录的 C 文件 但我想测试 Callgraph 功能 例如 您知道在不更改 C 文件的情况下解决此问题的方法吗 设置变量EXTRACT ALL YES在你的 Doxyfile 中
  • 使用 WGL 创建现代 OpenGL 上下文?

    我正在尝试使用 Windows 函数创建 OpenGL 上下文 现代版本 基本上代码就是 创建窗口类 注册班级 创建一个窗口 choose PIXELFORMATDESCRIPTOR并设置它 创建旧版 OpenGL 上下文 使上下文成为当前

随机推荐

  • 网络表单中的构造函数?

    我有一个 ASP NET Web 表单 我在其中初始化一个数组 其中包含页面上的控件列表 如下所示 FileUpload 4 new FileUpload 4 public myclass fileUpload 0 FileUpload1
  • PyCharm 中“没有名为管理的模块”

    我在使用 PyCharm 时遇到问题 当我单击 工具 中的 运行 Django 控制台 或 运行管理 py 任务 时 我得到 Traceback most recent call last File
  • 为iPhone 5创建opencv相机矩阵solvepnp

    我正在使用 opencv 为 iPhone 开发一个应用程序 我必须使用方法solvePnPRansac http opencv willowgarage com documentation cpp camera calibration a
  • 即使使用动态高度网站,如何将页脚保持在底部

    当我有一个使用 CSS 动态设置高度 例如从数据库获取信息 的页面时 如何将页脚 div 始终保持在窗口底部 如果你想使用 jQuery 我想出了这个并且工作得很好 设置页脚的 CSS footer position absolute wi
  • 将 props 传递到 React 组件

    我刚刚开始学习 React 正在创建组件并将 props 传递给它们 我是否必须在下面的示例中引用 JSX 元素中的 props 我已经看到过引用 props 和未引用 props 的示例 并且这两个选项似乎都有效 const name J
  • 如何获得可靠的 Cortex M4 短延迟

    我正在将一些代码从 M3 移植到 M4 它使用 3 个 NOP 在串行输出时钟更改之间提供非常短的延迟 M3指令集将NOP的时间定义为1个周期 我注意到 M4 中的 NOP 并不一定会延迟任何时间 我知道我需要禁用编译器优化 但我正在寻找一
  • 如何使用 Handlebars.js 将字段小写?

    我想做这样的事情 user name toLowerCase 但我收到此错误 Error Parse error on line X tatus user name toLowerCase gt Expecting ID got undef
  • 如何使输入可观察?

    我有一个带有一些输入的组件 我希望在它发生更改时收到通知 我目前通过实施来使其工作ngOnChanges并找出哪个输入被更改 但是 我更愿意将输入声明设置为 Input select values selectValues Observab
  • For 循环范围必须有一个“iterator()”方法

    我遇到了这个奇怪的错误 val limit Int applicationContext resources getInteger R integer popupPlayerAnimationTime for i in limit 我找到了
  • 如何以编程方式添加多列 ListViewItem 而无需任何数据绑定?

    我有一个带有 3 个标头的 ListView 在 XAML 中声明如下
  • Mono 运行时的局限性

    我的问题类似于this one https stackoverflow com questions 802559 limitations in mono for a net framework developer and this one
  • 将 Chart JS 2 上的条形图扩展为新型图表

    我实际上正在使用 Chart JS 2 0 1 在页面上绘制图表 我的客户要求我在条形图中添加一条线 以便他们可以看到他们不能超过的限制 像那样 y 轴上有线条的条形图 https i stack imgur com 5XJO4 png 因
  • 使用 Apache POI 合并 Excel 中的单元格

    还有其他方法可以使用 Apache POI 库合并 Excel 中的单元格吗 我正在尝试使用以下内容 但它不起作用 selecting the region in Worksheet for merging data CellRangeAd
  • Boost Hana :将 Hana 类型转换为 std::string

    是否存在用于编译时转换 a 成员类型的 Boost Hana 方法Struct类型名的 std string 的 STL 容器的概念 例如 MyType t std array
  • Vala:陷阱、提示和技巧

    作为一名刚接触 Vala 的程序员 您对刚接触该语言的人的第一条建议是什么 这很大程度上取决于您来自什么背景 如果您来自 C C Java 最好的建议是学习函数式编程 Vala 支持真正的闭包 因此您应该 深入 学习如何使用 lambda
  • 核心数据线程和锁争用问题

    我目前正在编写 iOS 应用程序的同步引擎 我正在编写的方法之一是重新加载数据函数 其中应用程序重新下载用户的数据及其所有照片 这是一项昂贵的操作 时间方面 所以我创建了一个NSOperation子类 SSReloadDataOperati
  • Dropzone 和 webpack encore

    我正在尝试将 dropzone 集成到我的 Symfony 4 1 项目中 但我遇到了麻烦 我通过 npm 将 dropzone 添加到我的项目中 npm install dropzone In 资产 app js 我需要拖放区 use s
  • 如何在 Oracle Commerce(ATG) 中使用 生成动态 URL

    我正在尝试使用 ProductLookup Droplet 在 jsp 中显示产品列表 如下所示 我还尝试提供一个超链接来导航到单个产品的产品详细信息页面
  • 使用 Python 读取 CR2(原始佳能图像)标头

    我正在尝试提取从 CR2 原始图片的佳能格式 拍摄照片的日期 时间 我知道CR2规格 http lclevy free fr cr2 而且我知道我可以使用 Pythonstruct http docs python org library
  • ASP.NET Core:是否可以使用HttpClient获取文件并直接返回?

    我有一个内部 API 可以获取并返回文件结果 但是 此 API 没有任何身份验证 角色 权限检查的概念 并且无法修改以执行此操作 我想在现有的 ASP NET Core 2 Web API 上创建一个 Web API 端点来进行权限检查 调