gpt4 book ai didi

wcf - 通过 channel 接口(interface)支持消息级安全性的最小客户端

转载 作者:行者123 更新时间:2023-12-03 16:04:57 24 4
gpt4 key购买 nike

我正在尝试为 WCF 服务构建一个最小客户端,通过直接 channel 接口(interface)使用 WSHttpBinding 和 SecurityMode: Message

我目前的代码非常简单:

EndpointIdentity i = EndpointIdentity.CreateX509CertificateIdentity(clientCertificate);
EndpointAddress a = new EndpointAddress(new Uri("http://myServerUrl"), i);
WSHttpBinding b= new WSHttpBinding(SecurityMode.Message);
ChannelFactory<IRequestChannel> channelFactory = new ChannelFactory<IRequestChannel>(b, a);
channelFactory.Open();
IRequestChannel channel = channelFactory.CreateChannel();
channel.Open();
Message response = channel.Request(requestMessage);

clientCertificate 已正确加载。然而,之后,我不确定我是否以正确的方式调用了每个函数。

事实是:代码片段的最后一行抛出内容为 MessageSecurityException

Client cannot determine the Service Principal Name based on the identity in the target address 'http://myServerUrl' for the purpose of SspiNegotiation/Kerberos. The target address identity must be a UPN identity (like acmedomain\alice) or SPN identity (like host/bobs-machine).

这个问题可能是什么原因造成的?

最佳答案

默认的 ClientCredentialType 似乎是 Windows,这就是您收到与 Sspi/Kerberos 相关的错误的原因。您需要将“证书”指定为凭据类型,并在客户端凭据容器中设置实际证书。查看此链接的客户端部分了解更多详细信息:

http://msdn.microsoft.com/en-us/library/ms733098.aspx

关于wcf - 通过 channel 接口(interface)支持消息级安全性的最小客户端,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1362565/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com