Question

J'ai un service WCF. Qui a deux méthodes, dites Get et Save. Je souhaite uniquement exposer la méthode Get au tiers qui utilisera le service, alors que mon application devrait pouvoir utiliser les fonctions Get et Save.

Existe-t-il un moyen de consommer une méthode autre que OperationContract? Je songe à vérifier le nom d'hôte de la demande et à n'accorder l'accès que s'il s'agit du nom d'hôte de mon application.

Était-ce utile?

La solution

Pourquoi ne pas créer un deuxième ServiceContract comportant à la fois Get et défini comme OperationContracts ? Ensuite, vous pourrez déterminer qui peut accéder à ce deuxième contrat.

[ServiceContract]
public interface IFoo
{
    [OperationContract]
    void Get();
}

[ServiceContract]
public interface IFooInternal : IFoo
{
    [OperationContract]
    void Set();
}

Autres conseils

Voici le code permettant d'identifier l'adresse IP de l'hôte:

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";
}
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top