2013-08-12 9 views
10

Mam witrynę, w której potrzebna jest tożsamość użytkownika, naprawdę wolałbym, aby nie tworzyły kolejnego połączenia nazwy użytkownika/hasła, które muszą zapamiętać:w jaki sposób mogę użyć konta Microsoft do uwierzytelnienia na mojej stronie internetowej?

czy istnieją pakiety SDK umożliwiające uwierzytelnianie z konta Microsoft?

+0

Jestem naprawdę nadzieję na stronie próbki – stuck

+0

lol Mieli tak wiele nazw dla tej rzeczy jestem pewien, że to trudne do wyśledzenia. Zwykle pobierały pewną kwotę rocznie za witryny, aby z niej korzystać, a dla nas mało było to niedrogie. Zastanawiam się, czy teraz jest za darmo z pojawieniem się Facebooka itp. – ps2goat

Odpowiedz

4

To dość proste, ponieważ domyślny pusty szablon strony ASP.NET 4.5 pokazuje, jak uzyskać uwierzytelnianie OAuth2 za pomocą google/facebook/liveid/twitter.

http://www.asp.net/aspnet/overview/aspnet-45/oauth-in-the-default-aspnet-45-templates

+0

Dzięki za link, nie mam jasności co do tego, jak wygląda użytkownik po jego uwierzytelnieniu, potrzebuję czegoś unikatowego do indeksowania go do mojej bazy danych (jako unikalnej nazwy użytkownika). ta wartość nie może się zmienić w czasie, czy mogę założyć, że kombinacja źródła auth i adresu e-mail jest wyjątkowa? – stuck

+1

Tak, jest. Jeśli dostawca tożsamości zwróci wiadomość e-mail, możesz jej użyć wewnętrznie do rozróżnienia użytkowników. Nawet nie sądzę, że musisz łączyć go ze źródłem auth - to dlatego, że wszyscy wiarygodni dostawcy tożsamości sprawdzają wiadomości e-mail przed ich zwróceniem. Oznacza to, że jeśli google/facebook/liveid powie, że adres e-mail użytkownika to [email protected], możesz mu zaufać niezależnie od tego, jakie źródło auth było wśród tych trzech. –

+0

Link jest martwy – mayu

3

Zapoznaj się z Principal klasę kontekście. Można go utworzyć przy użyciu lokalnego hosta (komputera) lub kontekstu domeny i użyć metody ValidateCrentials (nazwa użytkownika, hasło łańcuchowe) do uwierzytelnienia przy użyciu poświadczeń systemu Windows.

http://msdn.microsoft.com/en-us/library/bb154889.aspx

Oto jak Używałem go w mojej stronie. (Połóż to w metodzie POST kontrolera uwierzytelniania lub coś podobnego)

Poniższy kod przyjmie nazwę użytkownika "bob" lub "localhost \ bob" lub "DOMAIN \ bob" itd. I uzyska prawo PrincipalContext dla uwierzytelnianie użytkownika. UWAGA: tutaj nie ma znaczenia wielkość liter.

 public bool ValidateCredentials(string username, System.Security.SecureString password) 
    { 
     string domain = Environment.MachineName; 
     if (username.Contains("\\")) 
     { 
      domain = username.Split('\\')[0]; 
      username = username.Split('\\')[1]; 
     } 

     if (domain.Equals("localhost", StringComparison.CurrentCultureIgnoreCase)) 
      domain = Environment.MachineName; 

     if (domain.Equals(Environment.MachineName, StringComparison.CurrentCultureIgnoreCase)) 
      using (PrincipalContext context = new PrincipalContext(ContextType.Machine)) 
      { 
       return context.ValidateCredentials(username, password.ToUnsecureString()); 
      } 
     else 
      using(PrincipalContext context = new PrincipalContext(ContextType.Domain)) 
      { 
       //return context.ValidateCredentials(domain + "\\" + username, password.ToUnsecureString()); 
       return context.ValidateCredentials(username, password.ToUnsecureString()); 
      } 


    } 
1

Masz na myśli konto z aktywnego katalogu windows? Jeśli tak, możesz użyć uwierzytelniania systemu Windows i po prostu strona z podpowiedziami powinna je automatycznie zarejestrować.

http://msdn.microsoft.com/en-us/library/ff647405.aspx

Użyj następujących poleceń w kodzie za plik, aby uzyskać odpowiednie informacje o podpisaniu w:

System.Security.Principal.WindowsIdentity.GetCurrent().Name 
User.Identity.IsAuthenticated 
User.Identity.AuthenticationType 
User.Identity.Name 
2

Microsoft zapewnia Live Connect SDK do integracji usług firmy Microsoft w aplikacjach, w tym kont Microsoft dostawca tożsamości.

Istnieje konkretny przykład na Server-Side Scenarios, który powinien obejmować wszystko, co potrzebne do integracji.

Powiązane problemy