1

我有这个 web 服务 (.asmx) 和这个 obj-c 代码(从 wsdl2code.com 生成)一切正常 - 可以连接和所有这些,但我需要在肥皂调用中设置一些额外的标头信息。

在 .net 中,如果我将“AllowCookies”标志 WCF-config 设置为 true,我只能使用该服务。

像这样:

var session = new WebServiceSoapClient();
     ((BasicHttpBinding)session.Endpoint.Binding).AllowCookies = true;

如果我只是直接使用该服务,它会抛出“用户未通过身份验证”异常。

现在,我在 iOS 平台上又遇到了这个问题,我不知道如何/在哪里添加信息。我找到了这篇文章,并认为我可以用它来做同样的伎俩,只需覆盖一个设置。没有成功。

有人有解决方案吗?或有关设置哪个标头的信息?

(我从第一次身份验证中得到了一个令牌,我想应该在这里使用它..)

更新:

我打开了与 asp.net webapp 和 webservice 的通信,并使用 Fiddler2 来调查标头。一开始我并不清楚,因为“Cookie”标头仅包含 asp.net 中的默认身份验证字符串:“ASP.NET_SessionId={xxxxxxxxxxxxx}”。但我只使用了实际值而不是整个字符串。我想这是缺乏基本的 HTTP 标头知识......我在以后的所有请求中将整个字符串附加到标头“Cookie”,它起作用了!

4

1 回答 1

1

更新:

我打开了与 asp.net webapp 和 webservice 的通信,并使用 Fiddler2 来调查标头。一开始我并不清楚,因为“Cookie”标头仅包含 asp.net 中的默认身份验证字符串:“ASP.NET_SessionId={xxxxxxxxxxxxx}”。但我只使用了实际值而不是整个字符串。我想这是缺乏基本的 HTTP 标头知识......我在以后的所有请求中将整个字符串附加到标头“Cookie”,它起作用了!

于 2013-03-03T01:36:00.150 回答