我正在使用Syncfusion FileManager组件创建一个webassembly应用程序。我已经保护了API,以便使用控制器中的[Authorize]属性使用FileManager进行上载,并将FileManager组件正在使用的httpclient的Authorization头设置为我在整个应用程序中使用的httpclient-Authorization头。
FileManager的下载功能不允许这样做(根据Syncfusion支持(。
最后,我的问题是:如何确保下载api端点的安全?我真的需要保护它吗?难道没有人知道我正在使用FileManager组件,如何构造一个对象发送到下载api端点,并知道文件名和目录结构是什么吗?
我最终要求用户在下载前输入用户名和密码。我将loginModel
传递给控制器,并使用signInManager
验证密码(这并不比处理登录更不安全(。如果帐户良好,则返回内容;如果不是;未经授权的";显示消息。
根据文件管理器组件的当前实现,HttpClient实例只在读取和上载操作中发送,因为我们只使用Http请求处理了那些文件操作。您可以使用OnSend事件为Read和Upload操作设置HttpClientInstance。
文件管理器的下载操作是通过使用表单提交来处理的。我们不使用Http请求来处理它,所以不可能在这里传递HttpClientInstance。但是,您可以将自定义值从客户端发送到服务器以进行下载操作。您可以通过在BeforeDownload事件中将args.Cancel设置为true来阻止我们的默认下载操作。然后,您可以使用interop调用触发自定义下载操作,在该调用中,您可以将自定义值传递到服务器端。
查看以下论坛以在下载操作中传递自定义值
https://www.syncfusion.com/forums/169552/how-to-use-httpclient-for-file-manager