2009-07-12 8 views
7

Obecnie tworzę aplikację Silverlight 3, która wymaga pewnego rodzaju uwierzytelnienia użytkownika, ponieważ dane pobierane z usługi WCF są specyficzne dla użytkownika. Grupa docelowa to zwykły Internet - więc nie ma AD do uwierzytelnienia.Identyfikacja użytkownika Silverlight

Oto niektóre z pytań, jakie dotyczących tej sytuacji:

  • Czy istnieje ramy lub inny mechanizm, który by mnie wesprzeć?
  • Czy poleciłbyś autoryzację w aplikacji Silverlight lub za pomocą mechanizmów zewnętrznych, takich jak formularze? Który jest bardziej bezpieczny?
  • Co ze wsparciem poza przeglądarką?

Odpowiedz

2

użyłem uwierzytelnianie użytkownika ASP.NET. Po prostu użyj MembershipProvider (lub użyj własnego). Następnie przejdź do strony http://www.silverlightshow.net/items/Accessing-the-ASP.NET-Authentication-Profile-and-Role-Service-in-Silverlight.aspx, aby sprawdzić, w jaki sposób można ujawnić usługę uwierzytelniania.

Następnie w usłudze WCF, wykonać następujące czynności (gościł w 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); 
     } 
} 

nadzieję, że pomoże.

2

Chciałbym rozważyć użycie klas uwierzytelniania, które istnieją w ASP.NET. Następnie można korzystać z usług .NET RIA (lub nawet po prostu WCF) w celu komunikacji z usługą uwierzytelniania.

Consider this article as a primer.

+0

Czy masz doświadczenie z tym rozwiązaniem? –

+0

Tak. Użyłem usług RIA SL3 i .NET. Jest to aplikacja sprawdzająca koncepcję, nad którą pracuję, ale mogę zdalnie tworzyć i rejestrować użytkowników. – billb