We have a 3 tier application - winform based thick client, several WCF services hosted in windows services and sql. Some WCF services provide functionalities specific to UI in the clients but there are services running to do data loading, processing, caching etc. So, all these services talk to each other and also serve requests from clients.
Now comes the actual question : Is there a way to understand if a request is from a client or from another service. Assuming I write a message inspector, can I somehow interpret, if a request is coming through from a client (user) or from another service.
What I am trying to achieve - This is in another thread if you need. stopping user requests to wcf services. But briefly, am trying to keep the services locked from user access but the services should continue to run and be accessible to/from other services.
Is there a way to understand if a request is from a client or from another service. Assuming I write a message inspector, can I somehow interpret, if a request is coming through from a client (user) or from another service.
That is a task for authentication and authorization. Your clients will have accounts in Clients group and your services will have accounts in Services group. You will also probably need some custom ServiceAuthorizationManager
which will check if clients are allowed to access the service and either pass them in or throw exception.