Ten artykuł jest lustrzanym artykułem tłumaczenia maszynowego, kliknij tutaj, aby przejść do oryginalnego artykułu.

Widok: 27998|Odpowiedź: 3

[Źródło] Asp.Net uwierzytelnianie i autoryzacja w MVC

[Skopiuj link]
Opublikowano 16.03.2017 13:47:34 | | |

MVC jest wyposażony w ActionFilter
Aby uzyskać uwierzytelnianie tożsamości w Asp.NET WebForm, Microsoft oferuje nam trzy sposoby, z których najczęściej stosowanym jest uwierzytelnianie formularzowe, które musi być skonfigurowane z odpowiednimi informacjami. Na przykład następujące informacje konfiguracyjne:


Oznacza to, że nasza strona logowania jest Login.aspx, domyślna strona po pomyślnym zalogowaniu jest Default.aspx, a dane użytkownika korzystają z dwóch metod: weryfikacji i szyfrowania. I najważniejsze jest napisanie metody autoryzacji (autoryzacja poniżej musi być napisana, w przeciwnym razie nie ma sensu używać tylko uwierzytelniania Forms i ustawiać odpowiednie atrybuty), odrzucić wszystkich anonimowych użytkowników i normalnie korzystać tylko z zalogowanymi. Następnie ustawiliśmy przycisk logowania, aby wpisał nazwę użytkownika do ciasteczka (czyli wykonanie FormsAuthentication.SetAuthCookie(name, false); To wszystko.
0 W Asp.Net MVC możemy też używać uwierzytelniania Forms, ale jeśli zrobisz to w WebForm, to nie zadziała. Na przykład konfigurujesz informacje w ten sposób:


Konfigurujesz logowanie w Login.aspx, aby wywołać logowanie w AccountController, gdzie kod logowania:

Po wykonaniu tego procesu okaże się, że Twoje logowanie nie zostanie wykonane. Jaki jest powód? Dlaczego to samo ustawienie nie działa w MVC? Powodem jest to, że mechanizm jest inny, ponieważ tworzysz metodę autoryzacji, która sprawia, że logowanie jest niedostępne. Jak więc to zrobić?
W rzeczywistości w Asp.Net MVC mamy lepszy sposób na to wszystko, nie potrzebujemy metody autoryzacji, co oznacza, że nasze informacje konfiguracyjne wyglądają tak:




Nie ma potrzeby określać, że anonimowi użytkownicy nie mogą się logować itp. Oczywiście zauważysz, że samo to nie wystarczy, ale musimy informować system, do których należy się zalogować, aby uzyskać dostęp. Możesz myśleć, o()〈))o Och, to za dużo kłopotu. To nie tak, to bardzo proste, wystarczy oznaczyć [Autoryzować] na Akcji, która wymaga uwierzytelnienia. Na przykład mam dwie strony w folderze głównym: Index i Home, i chcę, aby Indeks był uwierzytelniony do dostępu, ale Home tego nie robi, więc wystarczy nadać Indeksowi tag Akcja [Autoryzuj], czyli:



Pozwala to na dostęp do Index po zalogowaniu, podczas gdy Home nie wymaga logowania. Jeśli musisz autoryzować role, możesz określić tę rolę podczas oznaczania Authorize (np. [Authorize(Role=Administrators)]), ale musisz użyć mechanizmu członkowskiego oferowanego przez Microsoft, ponieważ twoja rola nie może istnieć bez powodu, lecz istnieje w odpowiedniej bazie danych, o czym wspomniałem w innym blogu.
Dostosuj ActionFilter
Czasem możesz nie spełnić tego rodzaju uwierzytelniania albo jeśli czujesz, że nie jesteś wystarczająco elastyczny, to nie ma znaczenia, Asp.Net MVC pozwala dostosować ActionFilter. Na przykład teraz dostosowuję uwierzytelnianie:


Jeśli wymagane jest zarządzanie użytkownikami, zdefiniuję filtry związane z rolą:

W rzeczywistości zauważysz, że powyższe dwa atrybuty zostały faktycznie rozwiązane przez wbudowany system autoryzowany w MVC, a tutaj głównie mówimy, że możesz go rozszerzyć, jeśli zajdzie taka potrzeba.
No to wszystko na dziś! Kod źródłowy do pobrania: FormFormsAuthenticationMvc





Poprzedni:Po aktualizacji VPS proces wynosi około 45, a procesor osiąga 100,
Następny:Ostrzeżenie "Nierozwiązane konflikty znalezione między różnymi wersjami tego samego zależnego zespołu"
 Ziemianin| Opublikowano 30.03.2017 09:40:22 |
Opublikowano 28.12.2017 14:58:56 |
Byłoby lepiej, gdyby istniały wizualizacje
Opublikowano 07.02.2023 15:44:56 |

Byłoby lepiej, gdyby istniały wizualizacje
Zrzeczenie się:
Całe oprogramowanie, materiały programistyczne lub artykuły publikowane przez Code Farmer Network służą wyłącznie celom edukacyjnym i badawczym; Powyższe treści nie mogą być wykorzystywane do celów komercyjnych ani nielegalnych, w przeciwnym razie użytkownicy ponoszą wszelkie konsekwencje. Informacje na tej stronie pochodzą z Internetu, a spory dotyczące praw autorskich nie mają z nią nic wspólnego. Musisz całkowicie usunąć powyższą zawartość z komputera w ciągu 24 godzin od pobrania. Jeśli spodoba Ci się program, wspieraj oryginalne oprogramowanie, kup rejestrację i korzystaj z lepszych, autentycznych usług. W przypadku naruszenia praw prosimy o kontakt mailowy.

Mail To:help@itsvse.com