架构概述(不幸的是我无法在任何方面改变这一点):
需要身份验证的 .net mvc 站点位于“机器 A”上-
处理针对“身份验证文件”的身份验证的 WCF 数据服务位于“机器 B”上-
我创建了一个自定义主体(继承 IPrincipal)和自定义授权属性(继承 AuthorizeAttribute)来执行该系统所需的一些独特检查(类似于检查角色)。每个公共控制器操作(除了“LoginController”中的操作)都有我的自定义授权属性。
在我处理登录请求的控制器操作(具有“AllowAnonymous”属性)中,我向机器 B 上的数据服务发布了一个请求,但它只是挂起。我已经调试了该服务,可以看到它接收请求、执行工作并发送响应。机器 A 上的站点似乎没有收到响应。
这是我迄今为止尝试做的事情:
我在机器 C 上创建了一个小应用程序,将相同的数据发布到数据服务,该过程运行完成,机器 C 上的应用程序收到响应。-
我已回滚到不包含任何身份验证限制的修订版,并尝试发布相同的数据,但仍然没有收到响应。-
我已经禁用了机器 A 上的所有安全软件,以查看响应是否被防火墙或其他东西捕获,但没有运气。-
如果我模拟身份验证,则对来自站点的非身份验证数据的数据服务的其他调用会收到响应并按预期运行。-
因此,如果您对其他尝试有任何建议,或者您想要更多详细信息(不幸的是,我无法共享代码),我将尽力提供。
谢谢