【问题标题】:Redirect to Web Service WebMethod from ASP.NET Website从 ASP.NET 网站重定向到 Web 服务 WebMethod
【发布时间】:2011-11-23 18:45:22
【问题描述】:

我有一个使用 ASP.NET 和 Web 服务创建的网站,两者都使用 FormsAuthentication(根据 Active Directory - LDAP 验证用户的凭据)。

当我第一次调用此 Web 服务的操作方法时,我被重定向到实际将用户登录到系统的站点网页。当我登录时,我将被重定向到 Web 服务(ReturnUrl),但我猜有些东西会在路上丢失,因为我得到了一个 InvalidOperationException(在客户端),其中包含 .asmx 定义。

这仅发生在第一次通话中,下一次通话正常(因为我要去正确的地方)。

我在这里缺少什么?

我应该如何从网站重定向到网络服务?这个可以吗?

提前致谢。

【问题讨论】:

  • 您是从 Web 应用程序还是从浏览器调用 Web 服务?如果您需要对调用进行身份验证,则应确保在调用 Web 服务之前对用户进行身份验证。 Web 服务在浏览器上没有用户界面,因此您不能“重定向”到该服务。我不明白你的最后一句话:“从网站重定向到网络服务器”。
  • 这是一个错字;应该服务。我正在使用一个测试客户端,一个对 Web 方法的简单调用。不涉及浏览器。我看到了这个问题,我知道问题在于我如何处理我的身份验证,但我试图不改变它,因为我已经添加了一个 Web 服务!
  • hmmh,我还是不明白你想做什么。 Web 服务和网站是否在同一个域中? Web 应用程序调用服务还是您的测试客户端调用两者?您如何处理测试客户端对登录页面的重定向?
  • 我有一个带有 ASP.NET 网站和一个 Web 服务的 IIS 网站,使用相同的身份验证方法。当我第一次调用任何 Web 服务操作时,我会被重定向到 Active Directory Auth 网页。成功通过身份验证后,我想返回 Web 服务操作。而且我没有被重定向到正确的地方。我想知道如何正确地做到这一点。

标签: asp.net web-services redirect wsdl


【解决方案1】:

您的网络服务调用正在执行Post,然后在身份验证后通过Get 请求重定向。来自 ASMX 的默认响应是 .wsdl 定义。您不能以编程方式进行这样的 Web 服务身份验证。

如果您使用的是 Active Directory,为什么不使用 Windows 身份验证并禁止登录?

【讨论】:

  • 哦,我想这么多。在这种情况下,我认为我将不得不更改为 Windows Auth - 我使用的是 Forms,因为我有 Windows auth + user/pass 作为 auth 方法)。感谢您为我解决这个问题!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-09-06
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多