通常,在ASP.NET Core MVC中使用Forbid方法返回HTTP 403响应来拒绝访问。但是,根据HTTP规范,Forbid应该返回401 Unauthorized响应,因为用户需要进行身份验证才能访问资源。
因此,要在ASP.NET Core MVC中返回正确的HTTP 403 Forbidden响应,你可以使用如下示例代码:
// 在Controller中 [Authorize(Roles = "Administrator")] public IActionResult AdminOnlyPage() { return new StatusCodeResult((int)HttpStatusCode.Forbidden); }
// 或者使用如下方法: public IActionResult AccessDenied() { return new StatusCodeResult((int)HttpStatusCode.Forbidden); }
这些代码将返回一个带有HTTP 403 Forbidden状态码的空响应。这个状态码告诉客户端请求不被允许,即使正确的认证令牌也无法访问请求的资源。