为了账号安全,请及时绑定邮箱和手机立即绑定

从 SoapUI 调用 Web 方法时模拟失败

从 SoapUI 调用 Web 方法时模拟失败

C#
慕神8447489 2022-12-04 10:37:57
我有一个 WCF 自托管 Web 服务(托管在我的本地系统帐户下的 Windows 服务中)。Web 方法已[OperationBehaviorAttribute(Impersonation = ImpersonationOption.Required)]附加。使用 NTLM 身份验证。在我的 web 方法的实现中,我模拟调用者并做了一些事情。为此,我使用ServiceSecurityContext.Current.WindowsIdentity. 如果我在调用 web 方法时没有提供正确的凭据,则 web 服务将返回“401 Unauthorized”。当我从 Chrome 调用该方法时,windows 身份和模拟工作得很好。我可以在模拟用户下创建一个新进程,它将在该用户的 Windows 会话中生成(不同于 0)。network.automatic-ntlm-auth.trusted-uris当我将“localhost”字符串添加到首选项时,Firefox 也可以工作。但是,当 SoapUI 调用该方法时,此 Windows 标识设置不正确。Web 方法被调用,因此 NTLM 在一定程度上起作用,但它不能正常工作。调用ServiceSecurityContext.Current.WindowsIdentity.Owner.IsAccountSid()返回 false(Owner不是用户帐户,而是内置的“管理员”组)。在模拟时创建一个新进程将在 Windows 会话 0 中创建它。我研究了与 Wireshark 的 HTTP 通信,并且 NTLM 握手在 Chrome 和 SoapUI 之间看起来不同。虽然不知道如何处理这些信息。如何使 SoapUI 与我的 Web 服务和 NTLM 一起正常工作?
查看完整描述

1 回答

?
收到一只叮咚

TA贡献1821条经验 获得超4个赞

虽然我不知道如何解决 WCF 的问题,但我切换到 Web API 和 OWIN,现在我有了一个可行的解决方案。



查看完整回答
反对 回复 2022-12-04
  • 1 回答
  • 0 关注
  • 133 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信