【发布时间】:2018-01-31 12:55:41
【问题描述】:
我正在尝试连接到使用 https 托管的 wcf 服务
我将正确的凭据传递给服务器
enter code here var channel = new ConfigurationChannelFactory<C>(serviceConfigName, pluginConfig, new EndpointAddress(Url));
if (!string.IsNullOrEmpty(UserName))
{
channel.Credentials.UserName.UserName = UserName;
channel.Credentials.UserName.Password = Password;
channel.Credentials.ServiceCertificate.Authentication.CertificateValidationMode = X509CertificateValidationMode.None;
}
return channel;
我使用了下面的配置
<configuration>
<system.serviceModel>
<client>
<endpoint
name="ms_basic_http"
address="http://localhost"
binding="basicHttpBinding"
bindingConfiguration="defaultBasicHttpsBinding"
contract="ICONTRACT" />
</client>
<bindings>
<basicHttpBinding >
<binding name="defaultBasicHttpsBinding">
<security mode="Message">
<transport clientCredentialType="Basic" realm="BS" />
<message clientCredentialType="UserName" />
</security>
</binding>
</basicHttpBinding>
</bindings>
</system.serviceModel>
</configuration>
但从服务器获得以下响应
HTTP 请求未经客户端身份验证方案“匿名”授权。从服务器收到的身份验证标头是 'Basic realm="BS'
【问题讨论】:
标签: wcf wcf-security