在文件下载WebAPI上处理拒绝访问的正确方法是什么

时间:2017-09-21 18:50:50

标签: c# asp.net-mvc asp.net-web-api

 public FileResult DownloadDocument(VMUserProfile userprofile, int UploadDocumentID)
    {
        //This method will get a file from the database and 
        //Permissions will be checked 
    }

如果用户没有正确的下载文件的权限,您将如何处理让用户知道其访问被拒绝?抛出IO异常?

1 个答案:

答案 0 :(得分:0)

由于提供的信息量很少,答案很难简明扼要。话虽如此:

鉴于方法签名,您抛出异常的假设是有意义的; DownloadDocument 明确期望它实际上可以执行下载。因为它会在常规使用情况下发生故障和预期的情况:

  • 抛出某种类型的异常(在这种情况下,由于我们讨论的是ASP.NET,我们希望使用HttpResponseException,以便将HttpResponseMesssage返回给客户端相关的403状态代码)

  • 在客户端控制器上,您可以使用异常处理程序为开发人员生成正确的日志记录和堆栈跟踪,同时还创建用户友好的错误消息以显示在UI上

如果您有更多特定需求,您将不得不实施更高级的处理,但似乎您对初始直觉的一般前提有一个很好的了解。