MVC hadir dengan ActionFilter Untuk mencapai autentikasi identitas di Asp.NET WebForm, Microsoft memberi kami tiga cara, yang paling umum digunakan adalah autentikasi Formulir kami, yang perlu dikonfigurasi dengan informasi yang sesuai. Misalnya, informasi konfigurasi berikut:
Artinya, halaman login kami Login.aspx, halaman default setelah login berhasil Default.aspx, dan informasi pengguna kami mengadopsi dua metode: verifikasi dan enkripsi. Dan yang paling penting adalah kita perlu menulis metode otorisasi (otorisasi di bawah ini harus ditulis, jika tidak, tidak ada gunanya hanya menggunakan otentikasi Formulir dan kemudian mengatur atribut yang relevan), menolak semua pengguna anonim, dan hanya pengguna yang masuk yang dapat mengakses secara normal. Setelah itu, kami mengatur tombol login untuk menulis nama pengguna ke dalam cookie (yaitu, jalankan FormsAuthentication.SetAuthCookie(nama, salah); Itu saja. 0 Di Asp.Net MVC kita juga dapat menggunakan autentikasi Formulir, tetapi jika Anda melakukannya di WebForm, itu tidak akan berfungsi. Misalnya, Anda mengonfigurasi informasi seperti ini:
Anda menyiapkan login di Login.aspx Anda untuk memicu Login di AccountController untuk masuk, di mana kode Logon:
Setelah melakukan ini, Anda akan menemukan bahwa Logon Anda tidak akan dieksekusi. Apa alasannya? Mengapa pengaturan yang sama tidak berfungsi di MVC? Alasannya adalah mekanismenya berbeda, karena Anda menyiapkan metode otorisasi yang membuat Logon tidak dapat diakses. Jadi bagaimana kita melakukannya? Faktanya, di Asp.Net MVC kami memiliki cara yang lebih baik untuk melakukan semua ini, kami tidak memerlukan metode otorisasi, yang berarti informasi konfigurasi kami terlihat seperti ini:
Tidak perlu menentukan bahwa pengguna anonim tidak dapat masuk, dll. Tentu saja, Anda akan menemukan bahwa hanya melakukan ini saja tidak cukup, tetapi kami harus memberi tahu sistem mana yang perlu masuk untuk mengakses. Anda mungkin berpikir, o()〈))o Oh, itu terlalu merepotkan. Tidak seperti itu, sangat sederhana, kita hanya perlu menandai [Authorize] pada Action yang perlu diautentikasi. Misalnya, saya memiliki dua halaman di folder Beranda, Indeks dan Beranda, dan saya ingin Indeks diautentikasi untuk mengakses, tetapi Beranda tidak, jadi saya hanya perlu memberikan tag Tindakan Indeks [Otorisasi], yaitu:
Hal ini memungkinkan Index diakses setelah masuk, sedangkan Home tidak perlu masuk. Jika Anda perlu mengotorisasi peran, maka Anda dapat menentukan peran saat menandai Otorisasi (misalnya [Authorize(Role=Administrator)]), tetapi Anda harus menggunakan mekanisme keanggotaan yang disediakan oleh Microsoft, karena peran Anda tidak dapat ada secara gratis, tetapi ada di database yang sesuai, yang saya sebutkan di blog lain. Menyesuaikan ActionFilter Terkadang Anda mungkin tidak dapat memenuhi otentikasi semacam ini, atau jika Anda merasa tidak cukup fleksibel, maka itu tidak masalah, Asp.Net MVC memungkinkan Anda untuk menyesuaikan ActionFilter Anda. Misalnya, saya sekarang menyesuaikan otentikasi:
Jika manajemen pengguna diperlukan, saya akan menentukan filter terkait peran:
Faktanya, Anda akan menemukan bahwa dua Atribut di atas sebenarnya telah diselesaikan oleh Authorized bawaan MVC, dan di sini kami terutama memberi tahu Anda bahwa Anda dapat memperpanjangnya jika perlu. Nah, itu saja untuk hari ini! Unduhan kode sumber: FormFormsAuthenticationMvc
|