Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc ASP.NET Web API-处理媒体文件授权_Asp.net Mvc_Iis_Asp.net Web Api_Authorization_Owin Middleware - Fatal编程技术网

Asp.net mvc ASP.NET Web API-处理媒体文件授权

Asp.net mvc ASP.NET Web API-处理媒体文件授权,asp.net-mvc,iis,asp.net-web-api,authorization,owin-middleware,Asp.net Mvc,Iis,Asp.net Web Api,Authorization,Owin Middleware,我有一个移动应用程序,与asp.net web api中实现的支持api对话。用户可以发布应用程序中的图片,我将其保存在我的内容目录中。现在用户还可以从应用程序请求相同的url,并直接从IIS向用户提供服务 我想确定的是,只有上传图片的用户才能获取图片。任何其他用户都应该收到404 有没有一种方法可以使用web api处理这个问题?我不想在控制器中读取文件并充当base64,因为这不是一种有效的方法。我想继续通过IIS从内容目录提供图片,并在上面应用授权 有人遇到过这个问题吗?IIS没有内置机制

我有一个移动应用程序,与asp.net web api中实现的支持api对话。用户可以发布应用程序中的图片,我将其保存在我的内容目录中。现在用户还可以从应用程序请求相同的url,并直接从IIS向用户提供服务

我想确定的是,只有上传图片的用户才能获取图片。任何其他用户都应该收到404

有没有一种方法可以使用web api处理这个问题?我不想在控制器中读取文件并充当base64,因为这不是一种有效的方法。我想继续通过IIS从内容目录提供图片,并在上面应用授权


有人遇到过这个问题吗?

IIS没有内置机制;您需要在持久化存储(如数据库)中跟踪文件的所有者,并在需要文件时应用逻辑。您不必返回base64;WebAPI很少有其他方法返回文件数据。我有用户和文件映射。唯一的问题是,若我在Web API中编写操作来检查映射,我需要以字节数组的形式返回文件作为响应内容,这是不高效的。好吧,除了CDN之外,并没有什么比IIS直接向客户端提供静态文件更高效的了。我想你别无选择。