Uwierzytelnianie użytkowników za pomocą uwierzytelniania systemu Windows (VB)

przez Microsoft

Dowiedz się, jak używać uwierzytelniania systemu Windows w kontekście aplikacji MVC. Dowiesz się, jak włączyć uwierzytelnianie systemu Windows w pliku konfiguracji sieci Web aplikacji i jak skonfigurować uwierzytelnianie za pomocą usług IIS. Na koniec dowiesz się, jak korzystać z atrybutu [Autoryzuj] w celu ograniczenia dostępu do akcji kontrolera do określonych użytkowników lub grup systemu Windows.

Celem tego samouczka jest wyjaśnienie, w jaki sposób można korzystać z funkcji zabezpieczeń wbudowanych w internetowe usługi informacyjne, aby chronić widoki hasłem w aplikacjach MVC. Dowiesz się, jak zezwolić na wywoływanie akcji kontrolera tylko przez określonych użytkowników systemu Windows lub użytkowników, którzy są członkami określonych grup systemu Windows.

Korzystanie z uwierzytelniania systemu Windows ma sens podczas tworzenia wewnętrznej witryny sieci Web firmy (witryny intranetowej) i chcesz, aby użytkownicy mogli używać standardowych nazw użytkowników systemu Windows i haseł podczas uzyskiwania dostępu do witryny sieci Web. Jeśli tworzysz witrynę sieci Web skierowaną na zewnątrz (witrynę internetową), należy rozważyć użycie uwierzytelniania formularzy.

Włączanie uwierzytelniania systemu Windows

Podczas tworzenia nowej ASP.NET aplikacji MVC uwierzytelnianie systemu Windows nie jest domyślnie włączone. Uwierzytelnianie formularzy jest domyślnym typem uwierzytelniania włączonym dla aplikacji MVC. Uwierzytelnianie systemu Windows należy włączyć, modyfikując plik konfiguracji sieci Web aplikacji MVC (web.config). Znajdź <sekcję uwierzytelniania> i zmodyfikuj ją tak, aby używała systemu Windows zamiast uwierzytelniania formularzy w ten sposób:

<authentication mode="Windows">

</authentication>

Po włączeniu uwierzytelniania systemu Windows serwer sieci web staje się odpowiedzialny za uwierzytelnianie użytkowników. Zazwyczaj istnieją dwa różne typy serwerów sieci web, które są używane podczas tworzenia i wdrażania aplikacji ASP.NET MVC.

Po pierwsze podczas tworzenia aplikacji MVC, należy użyć ASP.NET programowanie web server dołączone do programu Visual Studio. Domyślnie program ASP.NET programowanie programu Web Server wykonuje wszystkie strony w kontekście bieżącego konta systemu Windows (niezależnie od tego, czy konto było używane do logowania się do systemu Windows).

Programistyczny serwer sieci Web ASP.NET obsługuje również uwierzytelnianie NTLM. Uwierzytelnianie NTLM można włączyć, klikając prawym przyciskiem myszy nazwę projektu w oknie Eksploratora rozwiązań i wybierając pozycję Właściwości. Następnie wybierz kartę Sieć Web i zaznacz pole wyboru NTLM (patrz Rysunek 1).

Rysunek 1 — włączanie uwierzytelniania NTLM dla ASP.NET programu Rozwoju serwera sieci Web

clip_image002

W przypadku produkcyjnej aplikacji sieci web używasz usług IIS jako serwera sieci web. Usług IIS obsługuje kilka typów uwierzytelniania, w tym:

  • Uwierzytelnianie podstawowe — zdefiniowane jako część protokołu HTTP 1.0. Wysyła nazwy użytkowników i hasła w postaci zwykłego tekstu (zakodowane w bazie Base64) w Internecie. - Uwierzytelnianie szyfrowane — wysyła skrót hasła, zamiast samego hasła, przez Internet. - Zintegrowane uwierzytelnianie systemu Windows (NTLM) — najlepszy typ uwierzytelniania do użycia w środowiskach intranetowych przy użyciu systemu Windows. - Uwierzytelnianie certyfikatu — umożliwia uwierzytelnianie przy użyciu certyfikatu po stronie klienta. Certyfikat jest mapowy do konta użytkownika systemu Windows.

Note

Aby uzyskać bardziej szczegółowe omówienie tych https://msdn.microsoft.com/library/aa292114(VS.71).aspxróżnych typów uwierzytelniania, zobacz .

Za pomocą Menedżera internetowych usług informacyjnych można włączyć określony typ uwierzytelniania. Należy pamiętać, że wszystkie typy uwierzytelniania nie są dostępne w przypadku każdego systemu operacyjnego. Ponadto jeśli usługi IIS 7.0 są używane w systemie Windows Vista, należy włączyć różne typy uwierzytelniania systemu Windows, zanim pojawią się one w Menedżerze internetowych usług informacyjnych. Otwórz Panel sterowania, programy, programy i funkcje, włączanie lub wyłączanie funkcji systemu Windowsoraz rozszerzanie węzła internetowe usługi informacyjne (patrz rysunek 2).

Rysunek 2 — włączanie funkcji iis systemu Windows

clip_image004

Korzystając z internetowych usług informacyjnych, można włączyć lub wyłączyć różne typy uwierzytelniania. Na przykład rysunek 3 ilustruje wyłączenie uwierzytelniania anonimowego i włączenie uwierzytelniania zintegrowanego systemu Windows (NTLM) podczas korzystania z usługi IIS 7.0.

Rysunek 3 — włączanie zintegrowanego uwierzytelniania systemu Windows

clip_image006

Autoryzowanie użytkowników i grup systemu Windows

Po włączeniu uwierzytelniania systemu <Windows> można użyć atrybutu Autoryzuj, aby kontrolować dostęp do kontrolerów lub akcji kontrolera. Ten atrybut można zastosować do całego kontrolera MVC lub określonej akcji kontrolera.

Na przykład kontroler macierzysty w wykazie 1 udostępnia trzy akcje o nazwie Index(), CompanySecrets() i StephenSecrets(). Każdy może wywołać akcję Index(). Jednak tylko członkowie lokalnej grupy Menedżerowie systemu Windows mogą wywoływać akcję CompanySecrets(). Na koniec tylko użytkownik domeny systemu Windows o nazwie Stephen (w domenie Redmond) może wywołać akcję StephenSecrets().

Lista 1 – Kontrolery\HomeController.vb

<HandleError()> _
Public Class HomeController
    Inherits System.Web.Mvc.Controller

    Function Index()
        Return View()
    End Function

    <Authorize(Roles:="Managers")> _
    Function CompanySecrets()
        Return View()
    End Function


    <Authorize(Users:="redmond\swalther")> _
    Function StephenSecrets()
        Return View()
    End Function

End Class

Note

Ze względu na kontrolę konta użytkownika systemu Windows podczas pracy z systemem Windows Vista lub Windows Server 2008 lokalna grupa Administratorzy będzie zachowywać się inaczej niż inne grupy. Atrybut <Autoryzator> nie rozpozna poprawnie członka lokalnej grupy Administratorzy, chyba że zmodyfikujesz ustawienia konta użytkownika komputera.

Dokładnie, co się dzieje, gdy próbujesz wywołać akcję kontrolera bez odpowiednich uprawnień zależy od typu uwierzytelniania włączone. Domyślnie podczas korzystania z ASP.NET programu Development Server po prostu otrzymujesz pustą stronę. Strona jest obsługiwana ze stanem nieu autoryzowanych odpowiedzi HTTP 401.

Jeśli z drugiej strony używasz usługi IIS z wyłączonym uwierzytelnianiem anonimowym i włączoną obsługą uwierzytelniania podstawowego, za każdym razem, gdy żądasz strony chronionej, jest wyświetlany monit o okno dialogowe logowania (patrz rysunek 4).

Rysunek 4 — okno dialogowe logowania do uwierzytelniania podstawowego

clip_image008

Podsumowanie

W tym samouczku wyjaśniono, jak można używać uwierzytelniania systemu Windows w kontekście ASP.NET aplikacji MVC. Dowiedzialiście się, jak włączyć uwierzytelnianie systemu Windows w pliku konfiguracji sieci Web aplikacji i jak skonfigurować uwierzytelnianie za pomocą usług IIS. Na koniec opisano, jak <używać> atrybutu Autoryzuj, aby ograniczyć dostęp do akcji kontrolera do określonych użytkowników lub grup systemu Windows.