WCFサービスがあります。GetとSaveの2つの方法があります。Getメソッドのみをサードパーティに公開したいのですが、サードパーティはサービスを利用しますが、アプリケーションはGetとSaveの両方を利用できるはずです。
OperationContractにないメソッドを使用する方法はありますか?リクエストのホスト名を確認し、それがアプリケーションのホスト名である場合にのみアクセスを許可することを考えています。
とのServiceContract
両方を持つ秒をGet
作成してみませんか?次に、この2番目の契約を結ぶことができる人をロックダウンすることができます。Set
OperationContracts
[ServiceContract]
public interface IFoo
{
[OperationContract]
void Get();
}
[ServiceContract]
public interface IFooInternal : IFoo
{
[OperationContract]
void Set();
}
ホストのIPアドレスを識別するためのコードは次のとおりです。
string GetAddressAsString()
{
RemoteEndpointMessageProperty clientEndpoint =
OperationContext.Current.IncomingMessageProperties[
RemoteEndpointMessageProperty.Name] as RemoteEndpointMessageProperty;
if (clientEndpoint != null)
{
return String.Format("{0}:{1}", clientEndpoint.Address, clientEndpoint.Port);
}
return "Failed to identify address";
}