O consumo de um método não mencionado em OperationContract
Pergunta
Eu tenho um serviço WCF. Que tem dois métodos, dizem Obter e Save. Eu quero expor apenas o método de chegar ao terceiro que estará consumindo o serviço enquanto a minha aplicação deve ser capaz de consumir GET e Save.
Existe uma maneira de consumir um método não em OperationContract? Estou pensando em verificar o nome de host do pedido e concessão de acesso somente se é o nome do host da minha candidatura.
Solução
Por que não criar uma segunda ServiceContract
que tem tanto Get
e Set
como OperationContracts
? Então você pode bloquear quem pode chegar a este segundo contrato.
[ServiceContract]
public interface IFoo
{
[OperationContract]
void Get();
}
[ServiceContract]
public interface IFooInternal : IFoo
{
[OperationContract]
void Set();
}
Outras dicas
Aqui está o código para identificar o endereço IP do host:
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";
}
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow