我有以下方法来检索文件夹:
[HttpGet]
[Authorize]
public HttpResponseMessage GetFolder(int id)
{
FolderDto folder = _service.GetFolder(id);
if (folder == null)
{
return Request.CreateResponse(HttpStatusCode.NotFound);
}
return Request.CreateResponse(HttpStatusCode.Found, folder);
}
我有授权工作 - 如果用户登录并通过有效 cookie 传递请求,则操作继续。但我只想允许用户获取属于他的文件夹 - 即成员表中具有其用户 ID 的 UserId 的文件夹。
我是否应该在控制器中为我的每个 WebAPI 控制器方法执行此检查,或者这里是否有我尚未了解的标准方法。我的直觉告诉我这样做:
[HttpGet]
[Authorize]
public HttpResponseMessage GetFolder(int id)
{
FolderDto folder = _service.GetFolder(id);
if (folder == null || folder.UserId != <userId>) // Or just add another check for HTTPUnauthorized
{
return Request.CreateResponse(HttpStatusCode.NotFound);
}
return Request.CreateResponse(HttpStatusCode.Found, folder);
}
想法?