拥有许多服务的 WSDL - 如何传递身份验证?

发布于 2024-12-25 06:48:05 字数 202 浏览 0 评论 0原文

我在 VS 2010 C# 项目中引用了两个 Web 服务。其中一项服务负责身份验证,另一项服务负责获取数据。 (我还可以使用 WSDL 生成类,但 Web 参考似乎是等效的)。

我使用服务 1 进行身份验证,但是如何告诉其他服务我已通过身份验证?我在 Fiddler 中看到服务 1 生成了一个 cookie,但我不知道如何获取它,因为我没有使用任何基本的 Http 类。

I have two web services that I made references to in a VS 2010 C# project. One of the services does authentication, the other does work getting data.
( I can also generate the classes using WSDL, but the web references seem equivalent).

I authenticate with service 1, but how then do I tell the other service that I'm authenticated? There is a cookie generated by service 1 that I see in Fiddler, but I do not see how to get at it as I am not using any of the basic Http classes.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

知足的幸福 2025-01-01 06:48:05

啊哈,我现在看到答案了。我的每个 WSDL 生成的对象都有一个 CookieCollection,我可以在身份验证调用后从 service1 读取它。然后我可以为第二个服务设置 cookie,如下所示:

response = service1.Authenticate();
CookieCollection allCookies= service1.CookieContainer.GetCookies(uri);
foreach (Cookie c in allCookies)
{
  service2.CookieContainer.SetCookies(_uri,c.Name + "=" +  c.Value);
}
service2.CallMyMethod();

这似乎是它的要点。

Aha, I see the answer now. Each of my WSDL-generated objects has a CookieCollection which I can read from service1 after the authentication call. Then I can set the cookies for the second the second service like so:

response = service1.Authenticate();
CookieCollection allCookies= service1.CookieContainer.GetCookies(uri);
foreach (Cookie c in allCookies)
{
  service2.CookieContainer.SetCookies(_uri,c.Name + "=" +  c.Value);
}
service2.CallMyMethod();

That seems to be the gist of it.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文