4
我们有一个web应用程序,作为'NETWORK SERVICE'在应用程序池中运行。 Web应用程序连接到另一个Web服务器上的服务(.svc)。另一个Web服务器也具有托管为“NETWORK SERVICE”的服务。我相信这是默认设置。预期身份upn作为网络服务连接到服务,
以下端点在其他任何位置运行时均可正常工作。
<endpoint address="http://server123/UnitTrustService/UnitTrustService.svc"
binding="wsHttpBinding" bindingConfiguration="WSHttpBinding_UnitTrustService"
contract="UnitTrustServiceReference.UnitTrustService" name="WSHttpBinding_UnitTrustService">
<identity>
<servicePrincipalName value="server123" />
</identity>
</endpoint>
不幸的是,当从网站执行时,我们得到以下错误。
System.ServiceModel.Security.MessageSecurityException:
The identity check failed for the outgoing message.
The expected identity is 'identity(http://schemas.xmlsoap.org/ws/2005/05/identity/right/possessproperty: http://schemas.xmlsoap.org/ws/2005/05/identity/claims/upn)'
for the 'http://server123/UnitTrustService/UnitTrustService.svc' target endpoint.
Server stack trace: at System.ServiceModel.Security.IdentityVerifier.EnsureIdentity(EndpointAddress serviceReference, AuthorizationContext authorizationContext, String errorString)...
任何想法? 我已经尝试使用完全相同的配置将其作为本地系统在Web服务器计算机上运行,并且完美工作。
它与IIS有关吗?
Registers Craig。
是的,看看回应 - 这是说它预计UPN。这是UserPrincipalName。将servicePrincipalName更改为userPrincipalName。你可以尝试的另一件事是更改server.domain.com到IP地址,看看这是否强制NTLM – Sentinel 2012-03-17 19:50:15