如何为 "Auth-Token" 的 Web 服务添加令牌认证?

How to add token authentication to web services for "Auth-Token"?

我是 Web 服务的新手,但我在 Visual Studio C# 中有一个 consuming/wrapping 的 Web 服务,它以 Service.asmx 结尾,我在 Add Service Reference 并引入了 Service.asmx?wsdl.

中显示的所有元素

UsernamePassword 的 objects 工作正常,但现在创建此 Web 服务的公司正在更改为令牌身份验证,我在其中获取 GUID 令牌并通过这些元素为 null。

Web 服务不应该在我传递令牌的地方显示一个新元素吗?

我被告知令牌在 header 中通过字段名称 Auth-Token 传递。那么这是我应该做的显而易见的事情还是 WSDL 需要更新?

所以我找到了更多可能对其他人有帮助的信息。我将服务添加为 "Service Reference",这是更高级的 WCF,但它是一个 asmx 引用,它是 "Web Reference".

添加服务引用时,如果单击高级选项,则会出现使用 .Net 2.0 样式的旧 "Web Reference" 选项。

从那里,您只需选择您的代理 class 并覆盖 System.Net.WebRequest GetWebRequest 方法,如下所示:

    protected override System.Net.WebRequest GetWebRequest(Uri uri)
    {
        System.Net.HttpWebRequest request = (System.Net.HttpWebRequest)base.GetWebRequest(uri);
        request.Headers.Add("Auth-Token", this.authToken);
        return request;
    }