从安全 Web 应用到 WCF 数据服务的身份验证调用挂起
本文关键字:服务 身份验证 调用 挂起 数据 WCF 安全 Web 应用 | 更新日期: 2023-09-27 18:31:24
架构概述(不幸的是,我无法在任何方面更改它):
- 需要身份验证的 .net MVC 站点位于"计算机 A"上
- 针对"身份验证文件"处理身份验证的 WCF 数据服务位于"计算机 B"上
我创建了一个自定义主体(继承 IPrincipal)和自定义授权属性(继承 AuthorizeAttribute)来执行此系统所需的一些唯一检查(类似于检查角色)。每个公共控制器操作("登录控制器"中的操作除外)都有我的自定义授权属性。
在我的控制器操作中处理具有"AllowAnonymous"属性的登录请求,我向机器 B 上的数据服务发布请求,它只是挂起。我已经调试了服务,我可以看到它接收请求,完成其工作并发送响应。计算机 A 上的站点似乎未收到响应。
以下是我到目前为止尝试做的事情:
- 我在机器 C 上创建了一个小应用程序,用于将相同的数据发布到数据服务,该过程运行完成,机器 C 上的应用程序收到响应。
- 我已经回滚到不包含任何身份验证限制的修订版,尝试发布相同的数据,但仍然没有收到响应。
- 我已经禁用了机器A上的所有安全软件,以查看响应是否被防火墙或其他东西捕获,没有运气。
- 如果我模拟身份验证,则来自站点的非身份验证数据对数据服务的其他调用将收到响应并按预期运行。
因此,如果您对其他事情有任何建议可以尝试,或者如果您想了解更多细节(不幸的是我无法共享代码),我将尽力提供。
谢谢
这里的问题是存在嵌套的异步调用。当我将对数据服务的异步调用移出调用它的异步方法时,它工作得很好。