Kontrola dostępu w ASP.NET



Podobne dokumenty
Budowa aplikacji ASP.NET współpracującej z bazą dany do obsługi przesyłania wiadomości

Kadry Optivum, Płace Optivum. Jak przenieść dane na nowy komputer?

REFERAT O PRACY DYPLOMOWEJ

Tworzenie i wykorzystanie usług sieciowych

Płace Optivum. 1. Zainstalować serwer SQL (Microsoft SQL Server 2008 R2) oraz program Płace Optivum.

Wraz ze stworzeniem najnowszej wersji środowiska

Języki programowania wysokiego poziomu. Ćwiczenia

Kadry Optivum, Płace Optivum. Jak przenieść dane na nowy komputer?

11. Autoryzacja użytkowników

Języki programowania wysokiego poziomu. Blog

Budowa aplikacji ASP.NET współpracującej z bazą dany do przeprowadzania ankiet internetowych

Warsztaty ASP.NET. Wprowadzenie do identyfikacji i autoryzacji użytkowników. Tomasz Janczyszyn WE, Informatyka, Rok III

Budowa aplikacji ASP.NET współpracującej z bazą dany do przeprowadzania ankiet internetowych

baza MS SQLEXPRES domyślnie po instalacji nie umożliwia obsługi połączenia z innego komputera

Bezpieczeostwo serwisów internetowych

Budowa aplikacji ASP.NET współpracującej z bazą dany do obsługi przesyłania wiadomości

Języki programowania wysokiego poziomu. Forum

Aplikacje internetowe - laboratorium

Programowanie komponentowe. Przykład 1 Bezpieczeństwo wg The Java EE 5 Tutorial Autor: Zofia Kruczkiewicz

Platforma e-learningowa

R o g e r A c c e s s C o n t r o l S y s t e m 5

Aplikacje WWW - laboratorium

Budowa aplikacji ASP.NET współpracującej z bazą danych do obsługi przesyłania wiadomości

Budowa aplikacji ASP.NET współpracującej z bazą danych do obsługi przesyłania wiadomości

Wykonać Ćwiczenie: Active Directory, konfiguracja Podstawowa

Aplikacje internetowe - laboratorium

Zaawansowane aplikacje internetowe - laboratorium

Konfiguracja Claims Based Authentication dla Microsoft SharePoint 2010

Rejestracja Czasu Pracy RCP Instrukcja

Zmiany funkcjonalne i lista obsłużonych zgłoszeń Comarch DMS

Dodawanie nowego abonenta VOIP na serwerze Platan Libra

Walidacja danych w ASP.NET MVC

Praca w programie dodawanie pisma.

ZAKŁADANIE POCZTY ELEKTRONICZNEJ - na przykładzie serwisu

System Comarch OPT!MA v. 17.1

Administracja i programowanie pod Microsoft SQL Server 2000

Kancelaria Prawna.WEB - POMOC

Wdrożenie modułu płatności eservice. dla systemu Zen Cart

Wdrożenie modułu płatności eservice. dla systemu oscommerce 2.3.x

INSTRUKCJA KONFIGURACJI KLIENTA POCZTOWEGO

4. Podstawowa konfiguracja

Pomoc dla r.

PRZYJMOWANIE/WYDAWANIE KOLEKTORAMI BY CTI

Ustalanie dostępu do plików - Windows XP Home/Professional

Sage Migrator 2019.e Migracja do Sage 50c wersja 2019.a i 2019.b

DESlock+ szybki start

KASK by CTI. Instrukcja

Kurs rozszerzony języka Python

E-faktura instrukcja dla kontrahentów TVP S.A.

Telesprzedaż by CTI Instrukcja

Aplikacje internetowe - laboratorium

Konfiguracja programu pocztowego Mozilla Thunderbird do pracy w sieci NEO.pl

Wdrożenie modułu płatności eservice. dla systemu Magento

Podręcznik dla szkół podstawowych składających ankietę dotyczącą działań o charakterze edukacyjnym w ramach programu Owoce i warzywa w szkole w

Currenda EPO Instrukcja Konfiguracji. Wersja dokumentu: 1.3

Bezpieczne strony WWW dla edukacji, organizacji non-profit i uŝytkowników indywidualnych.

Budowa aplikacji ASP.NET współpracującej z bazą dany do obsługi przesyłania wiadomości

Sage Migrator 2019.b Migracja do wersji Sage Kadry i Płace 2019.a

Zadanie1: Odszukaj w serwisie internetowym Wikipedii informacje na temat protokołu http.

Ustawienia personalne

Jednym z najważniejszych zagadnień, z którym może się zetknąć twórca

Aplikacje www laboratorium

Odseparowanie kodu PHP i warstwy prezentacji od dawna było celem

Oracle Application Express -

Tomasz Greszata - Koszalin

Program Rabator dla Microsoft Windows.

PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH. KL IV TI 6 godziny tygodniowo (6x15 tygodni =90 godzin ),

Ćwiczenie Nr 4 Administracja systemem operacyjnym z rodziny Microsoft Windows

Aplikacja mobilna Novell Vibe Szybki start

ZPKSoft WDoradca. 1. Wstęp 2. Architektura 3. Instalacja 4. Konfiguracja 5. Jak to działa 6. Licencja

Dokumentacja Administratora portalu. aplikacji. Wirtualna szkoła

Instrukcja logowania do systemu Rejestru Unii dla nowych użytkowników

INSTRUKCJA OBSŁUGI wersja 1.0.2

Kurier DPD by CTI. Instrukcja

Problemy techniczne. Jak udostępnić dane na potrzeby wykonania usługi wdrożeniowej? Zabezpieczanie plików hasłem

Grupa: przedsiębiorcy

Forte Zarządzanie Produkcją Instalacja i konfiguracja. Wersja B

ShopGold Integrator by CTI. Instrukcja

HOTSPOT. [ konfiguracja, rejestracja, użytkowanie ]

Mini Produkcja by CTI. Instrukcja

Praca w sieci równorzędnej

Uwierzytelnianie użytkowników sieci bezprzewodowej z wykorzystaniem serwera Radius (Windows 2008)

System Zarządzania Czasem Pracy na Produkcji by CTI. Instrukcja

VIRTUEMART INTEGRATOR BY CTI INSTRUKCJA

Windows Server 2008 Standard Str. 1 Ćwiczenia. Opr. JK. I. Instalowanie serwera FTP w Windows Server 2008 (zrzuty ekranowe z maszyny wirtualnej)


Pobierz bibliotekę AccessDatabaseEngine dla systemów 64-bitowych.

Opisane poniżej czynności może wykonać administrator komputera lub administrator serwera SQL (tj. użytkownik sa).

Instrukcja instalacji i obsługi programu Szpieg 3

Instrukcja dla prowadzącego stację na platformie szkoleniowej Akademii Orłów

Graficzny terminal sieciowy ABA-X3. część druga. Podstawowa konfiguracja terminala

MasterEdytor. Podprogram pomocniczy do programu mpfotoalbum 1.2 INSTRUKCJA

Platforma e-learningowa

Laboratorium Ericsson HIS NAE SR-16

Konfiguracja serwerów pocztowych na platformie Tradoro.pl

Programowanie w Sieci Internet Python - c. d. Kraków, 28 listopada 2014 r. mgr Piotr Rytko Wydział Matematyki i Informatyki

Wskazówki do instalacji Systemu Symfonia Forte. Szybki start

PORADNIK UŻYTKOWNIKA SYSTEMU BANKOWOSCI INTERNETOWEJ KIRI. BS W POWIATOWYM BANKU SPÓŁDZIELCZYM W LUBACZOWIE

Transkrypt:

Ćwiczenie 13 Temat: Kontrola dostępu w ASP.NET Cel ćwiczenia: W ramach ćwiczenia student zapozna się mechanizmami kontroli dostępu obecnymi w ASP.NET. Nauczy się konfigurować uprawnienia poszczególnych użytkowników serwisu oraz udostępniać możliwość zarządzania użytkownikami przez interfejs WWW.

Mechanizm dostawców (providers) System kontroli dostępu do serwisu ASP.NET domyślnie przewiduje przechowywanie wszystkich danych o użytkownikach w bazie danych serwera MS SQL. Niezbędnym wówczas warunkiem skorzystania z możliwości ASP.NET w tym zakresie jest posiadanie serwera MS SQL, co różnych przyczyn nie zawsze jest wygodne. Aby zwiększyć elastyczność ASP.NET wprowadzono mechanizm dostawców (providers), którzy pośredniczą pomiędzy ASP.NET a składowiskiem danych. Możliwości ich podmiany pozwala połączyć system kontroli dostępu ASP.NET z dowolnym serwerem bazodanowym. Obecne w ASP.NET typy providerów to: MembershipProvider zajmuje się obsługą danych na temat użytkowników serwisu RoleProvider zajmuje się obsługą danych na temat ról użytkowników ProfileProvider zajmuje się obsługą danych profilu użytkownik Standardowi dostawcy dedykowani dla MS SQL są skonfigurowani w głównym pliku konfiguracyjnym machine.config. Ich podmianę można zrealizować dla pojedynczego serwisu w jego pliku web.config. Kod dostawców może zostać wprowadzony do serwisu w postaci skompilowanej i umieszczony w katalog Bin lub w postaci źródłowej i umieszczony w katalogu App_Code. Klasa Membership Klasa Membership udostępnia zestaw metod pozwalających pozyskiwać i modyfikować dowolne informacje o użytkownikach. Metoda CreateUser DeleteUser UpdateUser ValidateUser Opis Stwórz nowego użytkownika Usuń użytkownika Aktualizuj dane użytkownika Sprawdź poprawność danych identyfikujących użytkownia 122

FindUsersByEmail FindUsersByName GetUser GetAllUsers GetNumberOfUsersOnline Odszukaj użytkownika po emailu Odszukaj użytkownika po nazwie Pobierz dane wybranego użytkownika Pobierz wszystkich zarejestrowanych użytkowników Pobierz liczbę aktualnie pracujących użytkowników Klasa MembershipUsers Takie metody klasy Membership, jak GetUser lub GetAllUsers zwracają obiekt lub kolekcję obiektów klasy MembershipUsers, które zawierają pełną informację o użytkowniku. Właściwość UserName Email CreationDate IsOnline IsLockedOut LastLoginDate Opis Nazwa użytkownika Adres pocztowy Data utworzenia Czy aktualnie pracuje? Czy jest zablokowany? Data ostatniego logowania Kontrolka CreateUserWizard Kontrolka CreateUserWizard pozwala zaimplementować dodawanie do serwisu nowych użytkowników. W zasadzie nie wymaga ona konfiguracji. 123

Zadanie 1 1. Rozpakuj plik http://kzi.polsl.pl/ti/cwiczenia/bezpieczny.zip 2. Przeanalizuj strukturę bazy danych Access ASPNetDB.mdb (katalog App_Data), która będzie przechowywać dane o użytkownikach. 3. Przejrzyj kod AccessMembershipProvider (katalog App_Code), którego zadaniem będzie pośredniczenie pomiędzy ASP.NET a bazą Access w zakresie przechowywania danych użytkowników. 4. Odszukaj w pliku web.config podmiany standardowego MembershipProvidera. <membership defaultprovider="accessmembershipprovider"> <providers>\ <clear/> <add name="accessmembershipprovider" type="samples.accessproviders.accessmembershipprovider" connectionstringname="accessfilename" enablepasswordretrieval="false" enablepasswordreset="false" requiresuniqueemail="false" requiresquestionandanswer="false" minrequiredpasswordlength="1" minrequirednonalphanumericcharacters="0" applicationname="samplesite" hashalgorithmtype="sha1" passwordformat="hashed"/> </providers> </membership> 5. W katalogu Administracja utwórz stronę NowiUzytkownicy.aspx. Uwaga! W celu uniknięcia problemów z różnymi wersjami VisualStudio należy wybrać opcję wspólnego pliku kodu HTML i C#. 6. Zaimplementuj w zdarzeniu Load wyświetlanie wszystkich aktualnie zarejestrowanych w serwisie użytkowników na liście BulletedList. Wykorzystaj klasę 124

Membership. Użyj pętli foreach. Pamiętaj o każdorazowym wyczyszczeniu kolekcji Items listy. 7. Przy pomocy kontrolki CreateUserWizard uzupełnij stronę NowiUzytkownicy.aspx o możliwość dodawania nowych użytkowników. Autentykacja oparta o formularze ASP.NET udostępnia trzy podstawowe typy autentykacji (uwierzytelnienia użytkownika): Windows opartą o pulę użytkowników i mechanizmy Windows Forms opartą o formularz umieszczony na stronie WWW i pulę użytkowników przechowywaną w oddzielnej bazie danych Password opartą o serwis WWW firmy Microsoft przechowujący dane identyfikacyjne użytkowników i realizujący ich autentykację. Najpopularniejszą metodą autentykacji serwisów WWW jest metoda oparta o formularze WWW. W celu aktywacji dla wybranego serwisu ASP.NET w jego pliku web.config, w sekcji system.web powinien znaleźć się wpis: <authentication mode="forms"> <forms loginurl="mylogin.aspx" defaulturl="login.aspx"/> </authentication> Atrybut loginurl wskazuje stronę internetową, na którą zostanie automatycznie przekierowany użytkownik przy próbie dostępu do zasobu wymagającego uwierzytelnienia. Atrybut defaulturl wskazuje, na którą stronę użytkownik zostanie przekierowany po zalogowaniu, kiedy pierwszą odwiedzoną stroną była strona logowania. W przeciwnym wypadku użytkownik wraca na stronę, której próba otwarcia wymagała zalogowania. 125

Kontrolka Login Kontrolka Login udostępnia funkcjonalność uwierzytelnienia użytkownika na podstawie jego identyfikatora i hasła. Powinna znaleźć się na stronie realizującej logowanie (np. mylogin.aspx) Autoryzacja Autoryzacja polega na określeniu, jakie uprawnienia przysługują już zalogowanym użytkownikom. Domyślnie dostępem do całości serwisu dysponują wszyscy użytkownicy anonimowi i zarejestrowani. W celu zabezpieczenia dostępu do całego serwisu WWW lub jego katalogu należy umieścić w odpowiednim pliku web.config (głównym lub w jednym z podkatalogów) sekcje authorization. <system.web> <authorization> <allow users="adam"/> <deny users="*" /> </authorization> </system.web> Poniżej przykład zastosowania autoryzacji, ze wskazaniem ścieżki do pliku: <location path="katalog/plik.aspx"> <system.web> <authorization> <allow users="adam"/> <deny users="*" /> </authorization> </system.web> </location> 126

Wpis allow zezwala na dostęp do wybranego katalogu (I jego podkatalogów) wybranym użytkownikom. Wpis deny zabrania dostępu wybranym użytkownikom. Symbol * oznacza wszystkich użytkowników (zarejestrowanych i anonimowych). Symbol? oznacza użytkowników anonimowych. Ważna jest kolejność wpisów. Nie można w kolejnych wpisać anulować raz przydzielonego zezwolenia lub zakazu. Zapis: <deny users="*" /> <allow users="adam"/> Oznacza, że wszystkim użytkownikom odebrano prawo dostępu (także użytkownikowi adam) a drugi w kolejności wpis nie może już tego cofnąć. Zadanie 2 1. Zabroń użytkownikom anonimowy dostępu do całego serwisu. 2. W głównym katalogu serwisu utwórz stronę Logowanie.aspx w oparciu o kontrolkę Login. 3. W głównym pliku web.config wskaż stronę Logowanie.aspx, jako stronę obsługującą proces logowania. 4. Przetestuj działanie serwisu wchodząc na strony Default.aspx i NowyUżytkownik.aspx. 5. Zezwól na dostęp do stron w katalogu Administracja tylko użytkownikowi jkowal. 6. Przetestuj dostęp do stron logując się jako użytkownik kowal (hasło: jkowal123) oraz inny użytkownik Kontrolka LoginStatus Kontrolka LoginStatus zapewnia dwie funkcjonalności: Wyświetla informację, czy aktualnie pracujący użytkownik to użytkownik zalogowany czy anonimowy Użytkownikowi zalogowanemu pozwala się wylogować, a anonimowemu przejść na stronę logowania 127

Kontrolka LoginView Kontrolka LoginView pozwala wyświetlić dwie różne, zdefiniowane przez twórcę serwisu treści dla użytkownika zalogowanego i niezalogowanego. Wygląd definiuje się w schematach dla użytkowników anonimowych AnonymousTemplate i użytkowników zalogowanych LoggedInTemplate. Kontrolka LoginName Kontrolka LoginName wyświetla nazwę aktualnie zalogowanego użytkownika. Jeżeli jest to użytkownik anonimowy, kontrolka pozostaje pusta. Zadanie 3 1. Daj prawo dostępu do głównego katalogu serwisu wszystkim użytkownikom (anonimowym i zalogowanym) 2. Umieść na stronie Default.aspx kontrolkę LoginStatus.. Przetestuj jej działanie. 3. Dodaj do strony Default.aspx następującą funkcjonalność: Użytkownik niezalogowany ma zobaczyć tekst: Zaloguj się. Uzyskasz dodatkowe możliwości. Użytkownik zalogowany (np. Adam) zobaczy następujący tekst: Witam w naszym serwisie Adam. " 4. Przetestuj działanie serwisu 128