我需要在删除用户的同时发送401和403响应代码。我试图使用基于属性的路由。响应401为对象(applicationjson):{success: false}响应403为对象(applicationjson):{success: false}。
[Authorize]
[Route("users/{id}")]
[HttpDelete]
public ActionResult DeleteUser(Guid id)
{
try
{
using (var context = new POCContext())
{
var entity = context.Users.FirstOrDefault(e => e.UserId == id);
if (entity == null)
{
return NotFound(new { success = false });
}
else
{
context.Users.Remove(entity);
context.SaveChanges();
return NoContent();
}
}
}
catch (Exception ex)
{
return BadRequest(new { success = false });
}
}
X
因为你在一个控制器中,你可以修改控制器的 Response
在您的方法中直接做 Response.StatusCode = 401;
像以下这些:
[Authorize]
[Route("users/{id}")]
[HttpDelete]
public ActionResult DeleteUser(Guid id)
{
try
{
using (var context = new POCContext())
{
var entity = context.Users.FirstOrDefault(e => e.UserId == id);
if (entity == null)
{
Response.StatusCode = 401;
return NotFound(new { success = false });
}
else
{
context.Users.Remove(entity);
context.SaveChanges();
Response.StatusCode = 200;
return NoContent();
}
}
}
catch (Exception ex)
{
Response.StatusCode = 401;
return BadRequest(new { success = false });
}
}