Silverlight is a tricky beast when it comes to ACS integration, it seems that writing headers from Silverlight to pass authentication information is very difficult - there is no easy way to intercept calls to wrap their auth header in Silverlight, as you could do in an ASP application .NET
You can use ACS to obtain identifying information in Silverlight using an approach similar to this example: http://channel9.msdn.com/Events/MIX/MIX10/SVC01
What I ended up with is transferring some unique identifier requirement in the SWT token, signed with a key known both by Silverlight and the web service, and with the web service to verify that this user has access. By placing a unique identifier in the signed SWT token (with a very short expiration date) to reduce the number of attacks when people copy a valid request and send it later, I could more confidently believe that the request was really based on my Silverlight application.
To pass the token, I simply created a class containing all the parameters that I want to pass (so I did not need to rewrite the definitions of the functions), including the SWT token.
Hope this helps.
source share