我是网络服务的新手,但是我有一个我在Visual Studio C#中消费/包装的网络服务,以Service.asmx
结束{I} Add Service Reference
拉入Service.asmx?wsdl
中显示的所有元素。
它有Username
和Password
的对象可以正常工作,但现在创建此Web服务的公司正在更改为令牌身份验证,我获取GUID令牌并将null传递给这些元素。 / p>
Web服务是否应该显示我传递令牌的新元素?
我被告知令牌在字段名为Auth-Token
的标头中传递。那么这是我应该做的事情,或者WSDL是否需要更新?
答案 0 :(得分:1)
所以我想出了更多可以帮助别人的信息。我将服务添加为"服务参考",这是更高级的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;
}