【问题标题】:ASP.NET WebHookReceiver "return HttpStatusCode.Unauthorized" returns HTML insteadASP.NET WebHookReceiver“返回 HttpStatusCode.Unauthorized”返回 HTML
【发布时间】:2018-08-07 03:37:49
【问题描述】:

我正在为外部工具开发一个 webhook 接收器。

我正在使用 ASP.NET WebHooks 框架(更多:https://docs.microsoft.com/en-us/aspnet/webhooks/)

一切都很好,除了一件事:我无法返回 HttpStatusCode.Unauthorized。

这是 WebHookReceiver 中的代码结构:

public override async Task<HttpResponseMessage> ReceiveAsync(string id, HttpRequestContext context, HttpRequestMessage request)
        {
            try
            {
                var authheader = request.Headers.Authorization;
                if (authheader == null || string.IsNullOrEmpty(authheader.Parameter))
                {
                    return new HttpResponseMessage(HttpStatusCode.Unauthorized);
                }

我期待一个带有代码 HttpStatusCode.Unauthorized 的简单 HTTP 响应(旁注,任何其他 Http 代码都按预期工作)。相反,它返回整个 HTML Microsoft 登录页面。我什至不知道它是从哪里弄来的。

我现在的解决方案只是返回“BadRequest”和消息“授权失败”

【问题讨论】:

    标签: c# asp.net asp.net-mvc webhooks


    【解决方案1】:

    好的,知道了。

    这是完全正常的。

    https://www.restapitutorial.com/httpstatuscodes.html

    请求需要用户身份验证。响应必须包括 包含挑战的 WWW-Authenticate 标头字段(第 14.47 节) 适用于请求的资源。

    就我而言,我应该使用 403 Forbidden

    【讨论】:

      猜你喜欢
      • 2015-01-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-01-04
      • 1970-01-01
      • 1970-01-01
      • 2011-12-02
      相关资源
      最近更新 更多