在asp.net core web api中,我应该如何发送401和403响应代码?

我需要在删除用户的同时发送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 });
    }
}

给TA打赏
共{{data.count}}人
人已打赏
解决方案

在spark结构化流作业中,我如何从每个微批中的相同起始偏移量读取?

2022-5-11 11:00:18

解决方案

如何使用Batch脚本压缩多个文件夹?

2022-5-11 12:00:07

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索