我正在尝试使用带有基本身份验证的 REST 服务,但有一个奇怪的问题。发出的第一个请求不包括指定的基本身份验证凭据。这发生在每个第一个请求中。每次应用程序启动时都会发生这种情况。后续请求不会发生这种情况。我正在使用ClientBase<T>
该类来调用 API,它看起来像这样:
public class MyApi : ClientBase<IMyApi>
{
protected override IMyApi CreateChannel()
{
//Remove all client credentials.
ChannelFactory.Endpoint.Behaviors.RemoveAll<ClientCredentials>();
//Create new client credentials and add to the endpoint behaviours.
ClientCredentials clientCredentials = new ClientCredentials();
clientCredentials.UserName.UserName = Username;
clientCredentials.UserName.Password = Password;
ChannelFactory.Endpoint.Behaviors.Add(clientCredentials);
return base.CreateChannel();
}
public MyApi() : base (DefaultEndpointName)
{}
}
我的绑定设置如下:
<customBinding>
<binding name="myApiBinding">
<webMessageEncoding webContentTypeMapperType="ContentTypeMapper,Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
<httpTransport manualAddressing="true" maxReceivedMessageSize="6553600" authenticationScheme="Basic" realm="myRealm" />
</binding>
</customBinding>
我曾尝试将项目升级到 .Net 4,在初始化 API 后添加客户端凭据,但似乎没有一个具有预期的效果。
有没有办法为每个请求添加凭据?