如何为#34; Auth-Token"?添加令牌身份验证到Web服务

时间:2015-11-04 21:37:52

标签: c# web-services soap wsdl asmx

我是网络服务的新手,但是我有一个我在Visual Studio C#中消费/包装的网络服务,以Service.asmx结束{I} Add Service Reference拉入Service.asmx?wsdl中显示的所有元素。

它有UsernamePassword的对象可以正常工作,但现在创建此Web服务的公司正在更改为令牌身份验证,我获取GUID令牌并将null传递给这些元素。 / p>

Web服务是否应该显示我传递令牌的新元素?

我被告知令牌在字段名为Auth-Token的标头中传递。那么这是我应该做的事情,或者WSDL是否需要更新?

1 个答案:

答案 0 :(得分:1)

所以我想出了更多可以帮助别人的信息。我将服务添加为&#34;服务参考&#34;,这是更高级的WCF,但它是asmx引用,它是一个&#34; Web Reference&#34;。< / p>

添加服务引用时,如果单击高级选项,则会显示较旧的&#34; Web引用&#34;选项使用.Net 2.0风格。

从那里,您只需选择代理类并覆盖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;
    }