奇妙な問題で基本認証を使用して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>
プロジェクトを.Net4に上げてみましたが、APIの初期化後にクライアントのクレデンシャルを追加しましたが、望ましい効果が得られたものはないようです。
リクエストごとにクレデンシャルを追加する方法はありますか?