I have a project with several separate components that all need to talk to each other. I am now trying to find a good way to share a permission system between each component.
The 3 major components are:
- An ASP.Net Web Application
- A Silverlight application (served by the web application)
- A Windows Service, which provides some WCF web services to the Silverlight app.
The servers(1,3) both have access to the same database. Communication between each component is performed by WCF web services.
I need to make sure that whoever is requesting information from the Windows Service(3) is a user with correct permissions to access it. The Silverlight App(2) is where the requests should be coming from. At the moment, no user information is available to the Windows Service(1) because it is completely separate from the Asp.Net App(3). I don't want to store and pass around a username and password, and the user should only have to enter their credentials once, which occurs when at the log in on the ASP.Net App(1).
What is a good way to get user identification to the Windows Service(3)?
(I'll post a possibility I see as an answer below.)