这里应该使用 401 Unauthorized 还是 403 Forbidden?

Ear*_*rlz 5 authentication http

我读过这个类似的问题,但它并没有让我满意。

我有两个用例。

  1. 匿名(未经身份验证)用户尝试访问受保护(仅授权)资源
  2. 经过身份验证的用户尝试访问他无权访问的资源(即,不属于某个组)

对于这两种情况,应该返回哪个错误代码?我猜第一个是 401,第二个是 403。但是对于 401,响应中必须包含 WWW-Authenticate 标头。我不想使用基本的 HTTP 身份验证,而是选择更传统的基于表单的方法。(即,用户从 Login.aspx 或其他地方提交表单)。

那么我应该使用哪一种呢?

Joh*_*orf 0

我认为第一个为 401,第二个为 403。