Praktycznie każda większa witryna internetowa, zawiera
obecnie informacje dostępne wyłącznie dla pewnej specyficznej grupy
użytkowników. Mogą być to na przykład płatne artykuły, informacje przeznaczona
wyłącznie dla pracowników lub klientów firmy. Pracując w Internecie dostęp do
tego typu zasobów najczęściej uzyskuje się po podaniu loginu i hasła.
Bezpieczeństwo naszych prywatnych danych pozwalają zachować dwa główne procesy.
Pierwszym z nich jest identyfikacja użytkownika, polegająca na sprawdzeniu
tożsamości użytkownika aplikacji. Kolejnym krokiem jest autoryzacja, w którym
na podstawie podanych danych użytkownik uzyskuje dostęp do zasobów.
Technologia ASP.NET daje twórcą stron internetowych
możliwość sprawdzania tożsamości użytkownika na kilka sposobów. Generalnie,
wyróżniamy trzy podstawowe sposoby identyfikacji.
Windows authentication – identyfikuje i nadaje prawa
dostępu użytkownikom, na podstawie danych zawartych w systemie operacyjnym
serwera. Najczęściej sprowadza się to do tego, że konta użytkowników na
serwerze, umożliwiają równocześnie uzyskanie prawa dostępu do ukrytych zasobów
naszej witryny internetowej.
Forms authentication – w tym przypadku, użytkownik
musi skorzystać ze specjalnej strony, na której podaje login i hasło.
Informacje użytkownikach nie są przechowywane bezpośrednio w systemie.
Identyfikacja i autoryzacja odbywa się na podstawie informacji przechowywanych
w bazie danych, specjalnych plikach lub innych źródłach zewnętrznych.
Paszport authentication – w momencie próby uzyskania
dostępu do określonych zasobów, użytkownik zostaje przekierowany na specjalną
stronę firmy Microsoft, gdzie musi również podać login i hasło. Dane
użytkowników przechowywane są przez wspomnianą firmę. Zaletą tego rozwiązania
jest możliwość posiadania jednakowych loginów i haseł dla wielu witryn. Jednak
z przyczyn niewielkiego zainteresowania tą usługą, sposób ten nie będzie
omawiany w dalszej części artykułu.
Spróbujmy w tym momencie uniemożliwić anonimowym
użytkownikom dostęp do przykładowej strony, wchodzącej w skład projektu. Jako
pierwszą zastosujemy identyfikację Windows. W tym celu do projektu w Visual
Studio dodajemy pili Web.config. Następnie odnajdujemy linię zawierającą następujący
tekst.
<authentication mode=”Windows” />
Widzimy, że tryb ten jest domyślnym trybem identyfikacji
naszej aplikacji. Próba wyświetlenia zawartości strony kończy się jednak
sukcesem.

Wynika to z faktu, że musimy jeszcze odpowiedni skonfigurować
identyfikacje i autoryzację. W tym celu dodajemy do pliku Web.config
następującą treść:
<authorization>
<deny
users=”*”>
<allow
users=”nazwaKomputera\UserName”>
</authorization>
Przy próbie uruchomienia strony powinno pojawić się wówczas
następujące okno.
Aby wejść na stronę musimy podać login i hasło. W przypadku
identyfikacji Windows loginy i hasła użytkowników pokrywają się z loginami i
hasłami używanymi w systemie operacyjnym.
Wyobraźmy sobie sytuację, w której w systemie operacyjnym
istnieją konta dla pięćdziesięciu różnych użytkowników. W metodzie podanej
powyżej loginy wszystkich tych osób musiałyby znajdować się w pliku
konfiguracyjnym aplikacji. W takim przypadku o wiele łatwiej jest zamieścić w
nim następującą klauzulę.
<authorization>
<deny
users=”?”>
</authorization>
W tym przypadku aplikacja będzie odrzucać wszystkich
użytkowników, niezidentyfikowanych przez system operacyjny. Uruchamiając
aplikację na komputerze, na którym znajduje się nasza instancja serwera IIS
okienko, w którym podajemy login i hasło nie pojawi się. Chcąc jednak zalogować
się na stronę na przykład za pośrednictwem sieci Internet, będziemy musieli
podać login i hasło.