【发布时间】:2017-09-05 11:28:52
【问题描述】:
我在访问第三方服务时收到“拒绝访问”异常。
以下是我正在使用的绑定(已将某些名称更改为 XXXX、YYYY 和 OOOO,因为我不想显示它们)
<system.serviceModel>
<bindings>
<customBinding>
<binding name="XXXXSyncBinding">
<security defaultAlgorithmSuite="Default" authenticationMode="UserNameOverTransport"
requireDerivedKeys="true" securityHeaderLayout="Lax" includeTimestamp="false">
<localClientSettings detectReplays="false" />
<localServiceSettings detectReplays="false" />
</security>
<textMessageEncoding messageVersion="Soap11" />
<httpsTransport />
</binding>
</customBinding>
</bindings>
<client>
<endpoint address="https://OOOO--tls.YYYY.com/cgi-bin/OOOO.cfg/services/soap"
binding="customBinding" bindingConfiguration="XXXXSyncBinding"
contract="XXXXService.XXXXSyncPort" name="XXXXSyncPort" />
</client>
该服务使用 TLS 1.2 并在标头中传递凭据,如下所示
ServicePointManager.SecurityProtocol = (SecurityProtocolType)3072;
_client.ClientCredentials.UserName.UserName = "XYXYXXYXY"; _client.ClientCredentials.UserName.Password = "XYXYXXYXY&123";
但是服务总是抛出异常
mscorlib.dll 中出现“System.ServiceModel.Security.SecurityAccessDeniedException”类型的异常,但未在用户代码中处理其他信息:访问被拒绝
堆栈跟踪信息
服务器堆栈跟踪:
服务器堆栈跟踪: 在 System.ServiceModel.Channels.ServiceChannel.ThrowIfFaultUnderstood(消息回复,MessageFault 故障,字符串操作,MessageVersion 版本,FaultConverter faultConverter) 在 System.ServiceModel.Channels.ServiceChannel.HandleReply(ProxyOperationRuntime 操作,ProxyRpc& rpc) 在 System.ServiceModel.Channels.ServiceChannel.Call(字符串操作,布尔单向,ProxyOperationRuntime 操作,Object[] 输入,Object[] 输出,TimeSpan 超时) 在 System.ServiceModel.Channels.ServiceChannelProxy.InvokeService(IMethodCallMessage 方法调用,ProxyOperationRuntime 操作) 在 System.ServiceModel.Channels.ServiceChannelProxy.Invoke(IMessage 消息)
在 [0] 处重新抛出异常: 在 System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg,IMessage retMsg) 在 System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData,Int32 类型) 在 WhiteNowWI.WhiteNowService.WhiteNowSyncPort.RunAnalyticsReport(RunAnalyticsReportRequest 请求) 在 C:\RahulRathoreWork\PMGWorkSpace\GIT\WhiteNow\Service References\WhiteNowService\Reference.cs:line 24711 中的 WhiteNowWI.WhiteNowService.WhiteNowSyncPortClient.WhiteNowWI.WhiteNowService.WhiteNowSyncPort.RunAnalyticsReport(RunAnalyticsReportRequest 请求) 在 WhiteNowWI.WhiteNowService.WhiteNowSyncPortClient.RunAnalyticsReport(ClientInfoHeader ClientInfoHeader,AnalyticsReport AnalyticsReport,Int32 限制,Int32 开始,字符串分隔符,布尔 ReturnRawResult,布尔 DisableMTOM,Byte[]& FileData)在 C:\XXXX\XXX\GIT\XXX\Service References \X\Reference.cs:第 24723 行 at WhiteNowWI.QueryReport.getData(String username, String password, Int32 report_ID, String delimiter)
有人可以帮我解决这个问题吗?这将是一个很大的帮助。 谢谢!
【问题讨论】:
标签: wcf soapui wcf-security