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.

Foi útil?

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
scroll top