【发布时间】:2018-05-08 06:35:46
【问题描述】:
为了验证所选用户的 API 访问权限,我为验证用户 http 请求编写了中间件 中间件正在执行并改变请求的StatusCode
但 API 方法仍在执行中
这是我的中间件
httpContext.Response.StatusCode = 401;
httpContext.Response.WriteAsync("Invalid username or password.");
return _next(httpContext);
我在这里注册中间件
app.UseAuthenticationMiddleware();
这是我的 API 方法
[HttpPost]
public async Task<IActionResult> CreatePolicy([FromBody] Customer customerDetails)
这里我还添加了 [Authorize] 添加它的不工作返回 500 错误
有什么建议吗?
【问题讨论】:
-
那是因为你打电话给
await _next(httpContext)。这将执行管道中的 next 中间件。 (有条件地)删除它,它不会在管道中进一步调用中间件 -
@Tseng 我的方法应该有返回类型,因为如果它成功我需要移动下一个中间件 public Task Invoke(HttpContext httpContext)
-
哦,我们可以使用 async 和 await 让我们试试
-
它的工作谢谢你的朋友把你的评论作为答案
标签: .net asp.net-core .net-core middleware