Как мне отправить код ответа 401 и 403 в asp. net core web api? - PullRequest
0 голосов
/ 23 апреля 2020

Мне нужно отправить код ответа 401 и 403 при удалении пользователя. Я пытаюсь использовать атрибутную маршрутизацию. Ответ 401 как объект (application / json): {success: false} Ответ 403 как объект (application / json): {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

1 Ответ

0 голосов
/ 23 апреля 2020

когда вы находитесь в контроллере, вы можете изменить 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 });
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...