Microsoft имеет много для высказывания об этом предмете:
Я использовал аутентификацию ASP.NET. Просто используйте MembershipProvider (или реализуйте свой собственный). Затем перейдите на http://www.silverlightshow.net/items/Accessing-the-ASP.NET-Authentication-Profile-and-Role-Service-in-Silverlight.aspx , чтобы узнать, как можно открыть службу аутентификации.
Затем в своей службе WCF вы делаете следующее (размещено в ASP):
public class MyWCFService : IMyWCFService
{
// retrieve your UserId from the MembershipProvider
private int GetUserId()
{
MembershipUser user = Membership.GetUser();
int userId = (int)user.ProviderUserKey;
return userId;
}
// check if user is authenticated
private bool IsUserAuthenticated()
{
return HttpContext.Current.User.Identity.IsAuthenticated;
}
public void Subscribe()
{
if (!IsUserAuthenticated())
{
throw new SecurityException("You must be authenticated to be able to use this service.");
}
int userId = GetUserId();
DoStuff(userId);
}
}
Надеюсь, что это поможет.
Я бы подумал об использовании классов аутентификации, существующих в ASP.NET. Затем вы можете использовать .NET RIA Services (или даже просто WCF) для связи со службой аутентификации.