我有一個 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 回答
- 0 關注
- 156 瀏覽
添加回答
舉報
0/150
提交
取消