1

我正在尝试使用用户名和密码来验证 webhook 验证,但在标头值中没有出现。知道如何从请求标头中获取/读取它们吗?是否有任何不同的键名?我尝试了所有这些但总是空的

System.Net.Http.Headers.HttpRequestHeaders headers = Request.Headers;
        string username = string.Empty;
        string pwd = string.Empty;

        string username1 = string.Empty;
        string pwd1 = string.Empty;


        if (headers.Contains("X-DocuSign-UserName"))
        {
            username1 = headers.GetValues("X-DocuSign-Password").First();
        }
        if (headers.Contains("X-DocuSign-Password"))
        {
            pwd1 = headers.GetValues("X-DocuSign-Password").First();
        }

        if (headers.Contains("username"))
        {
            username = headers.GetValues("username").First();
        }
        if (headers.Contains("password"))
        {
            pwd = headers.GetValues("password").First();
        }
4

1 回答 1

1

如果我使用 DocuSign webhook基本身份验证功能,我的侦听器(我的服务器)如​​何查看传入的名称/密码?

答: Basic Auth是一个标准。它通过Authorization标头发送。格式在RFC 7617Wikipedia中有描述

你会用headers.GetValues("Authorization")

请注意,基本身份验证通常由您的 Web 服务器实现,而不是由应用程序实现。

另外:webhook 要求您的听众在公共互联网上有一个地址。这通常需要在防火墙上开一个洞。

如果您不想在防火墙上打洞,可以使用另一种方法:在 PAAS 服务(例如 AWS、Azure 等)上排队通知消息。然后,您的应用程序可以从防火墙后面使用长轮询来快速接收通知。结果:不需要防火墙漏洞!此技术的文档和示例代码。

于 2021-11-03T14:25:49.523 回答