从安全Web应用程序到WCF数据服务的身份验证调用挂起

时间:2016-01-22 14:41:12

标签: c# asp.net-mvc wcf authentication

架构概述(遗憾的是我无法在任何方面改变这种情况):

    需要身份验证的
  • .net mvc网站,位于“机器A”
  • wcf处理针对“身份验证文件”的身份验证的数据服务,位于“机器B”

我创建了一个自定义主体(继承IPrincipal)和自定义授权属性(继承AuthorizeAttribute)来执行此系统所需的几个独特检查(类似于检查角色)。每个公共控制器操作(“LoginController”中的操作除外)都具有我的自定义Authorize属性。

在我的控制器操作中处理具有“AllowAnonymous”属性的登录请求时,我向机器B上的数据服务发布请求,它只是挂起。我调试了服务,我可以看到它收到请求,它的工作,并发送响应。机器A上的站点似乎没有收到响应。

以下是我到目前为止所做的尝试:

  • 我在Machine C上创建了一个小应用程序,将相同的数据发布到数据服务,流程运行完成,机器C上的应用程序收到响应。
  • 我已回滚到不包含任何身份验证限制的修订版,尝试发布相同的数据,仍然没有收到回复。
  • 我已禁用机器A上的所有安全软件,以查看响应是否被防火墙或其他东西捕获,没有运气。
  • 如果我模拟身份验证,那么来自网站的非身份验证数据的其他数据服务调用会收到响应并按预期运行。

因此,如果您对其他事情有任何建议,或者您想了解更多细节(我很遗憾无法共享代码),我会尽力提供。

由于

1 个答案:

答案 0 :(得分:0)

这里的问题是嵌套的异步调用。当我将异步调用从调用它的异步方法移出到数据服务时,它可以正常工作。