2015-11-04 75 views
1

我对Web服务更新,但我有一个Web服务,我在Visual Studio C#中使用/包装,以Service.asmx结尾,其中我做了Add Service Reference,并且它吸引了Service.asmx?wsdl中显示的所有元素。如何向“Auth-Token”的Web服务添加令牌认证?

它有一个工作正常,但现在谁创造了这个网络服务公司正在改变对令牌认证在那里我得到一个GUID的令牌,并通过空的这些元素的UsernamePassword对象。

那么Web服务不应该显示一个新的元素,我通过令牌?

我被告知令牌通过字段名称为Auth-Token的标头。那么这显然是我应该做的还是WSDL需要更新?

回答

1

所以我想出了更多的信息可能会帮助别人。我将该服务添加为“服务参考”,它是更高级的WCF,但是它是一个“Web参考”参考。

添加服务引用时,如果单击高级选项,则会使用旧版“Web引用”选项,该选项使用.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; 
    }