2009-09-08 8 views
0

J'ai un service Web implémenté dans WCF. Ce service ne sera appelé que par un seul client, un site avec une adresse IP statique. Je voudrais mettre en œuvre une sécurité simple qui permettrait de vérifier que tous les appels au service ne sont valides que s'ils proviennent de cette adresse IP statique particulière.Sécurité WCF - Sécurité d'origine des données

Quelle est la meilleure façon de faire cela?

Répondre

1

Sur .NET 3.5, vous pouvez le faire dans votre code de service pour connaître l'adresse IP de l'appelant:

public void YourServiceMethod(string value) 
{ 
    OperationContext context = OperationContext.Current; 

    MessageProperties messageProperties = context.IncomingMessageProperties; 

    RemoteEndpointMessageProperty endpointProperty = 
     messageProperties[RemoteEndpointMessageProperty.Name] 
     as RemoteEndpointMessageProperty; 

    string clientIPAddress = endpointProperty.Address; 
    int clientPort = endpointProperty.Port; 
} 

vu à l'origine à Keyvan Nayyeri de blog post.

Marc

+0

J'espérais voir avec avec config, pas de code, mais cela va certainement faire l'affaire s'il n'y a aucun moyen de le faire avec config. Merci d'avoir répondu. – Odd

+0

Pour autant que je sache, il n'y a aucun moyen de restreindre l'appelant en fonction de leur adresse IP dans la configuration, désolé. –

Questions connexes