Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
oleh Microsoft
Pelajari cara menggunakan atribut [Otorisasi] untuk melindungi halaman tertentu dengan kata sandi di aplikasi MVC Anda. Anda mempelajari cara menggunakan Alat Administrasi Situs Web untuk membuat dan mengelola pengguna dan peran. Anda juga mempelajari cara mengonfigurasi tempat akun pengguna dan informasi peran disimpan.
Tujuan dari tutorial ini adalah untuk menjelaskan bagaimana Anda dapat menggunakan autentikasi Formulir untuk melindungi tampilan dalam aplikasi MVC ASP.NET Anda dengan kata sandi. Anda mempelajari cara menggunakan Alat Administrasi Situs Web untuk membuat pengguna dan peran. Anda juga mempelajari cara mencegah pengguna yang tidak sah memanggil tindakan pengontrol. Terakhir, Anda mempelajari cara mengonfigurasi tempat nama pengguna dan kata sandi disimpan.
Menggunakan Alat Administrasi Situs Web
Sebelum melakukan hal lain, kita harus mulai dengan membuat beberapa pengguna dan peran. Cara term mudah untuk membuat pengguna dan peran baru adalah dengan memanfaatkan Alat Administrasi Situs Web Visual Studio 2008. Anda dapat meluncurkan alat ini dengan memilih opsi menu Project, ASP.NET Configuration. Atau, Anda dapat meluncurkan Alat Administrasi Situs Web dengan mengklik ikon (agak menakutkan) dari palu yang mengenai dunia yang muncul di bagian atas jendela Penjelajah Solusi (lihat Gambar 1).
Gambar 1 - Meluncurkan Alat Administrasi Situs Web
Dalam Alat Administrasi Situs Web, Anda membuat pengguna dan peran baru dengan memilih tab Keamanan. Klik tautan Buat pengguna untuk membuat pengguna baru bernama Stephen (lihat Gambar 2). Berikan kata sandi apa pun yang Anda inginkan kepada pengguna Stephen (misalnya, rahasia).
Gambar 2 – Membuat pengguna baru
Anda membuat peran baru dengan terlebih dahulu mengaktifkan peran dan menentukan satu atau beberapa peran. Aktifkan peran dengan mengklik tautan Aktifkan peran . Selanjutnya, buat peran bernama Administrator dengan mengklik tautan Buat atau Kelola peran (lihat Gambar 3).
Gambar 3 - Membuat peran baru
Terakhir, buat pengguna baru bernama Sally dan kaitkan Sally dengan peran Administrator dengan mengklik tautan Buat Pengguna dan pilih Administrator saat membuat Sally (lihat Gambar 4).
Gambar 4 - Menambahkan pengguna ke peran
Ketika semua dikatakan dan dilakukan, Anda harus memiliki dua pengguna baru bernama Stephen dan Sally. Anda juga harus memiliki peran baru bernama Administrator. Sally adalah anggota peran Administrator dan Stephen tidak.
Membutuhkan Otorisasi
Anda dapat mengharuskan pengguna untuk diautentikasi sebelum pengguna memanggil tindakan pengontrol dengan menambahkan atribut [Otorisasi] ke tindakan. Anda dapat menerapkan atribut [Otorisasi] ke tindakan pengontrol individual atau Anda dapat menerapkan atribut ini ke seluruh kelas pengontrol.
Misalnya, pengontrol di Listing 1 memaparkan tindakan bernama CompanySecrets(). Karena tindakan ini dihiasi dengan atribut [Otorisasi], tindakan ini tidak dapat dipanggil kecuali pengguna diautentikasi.
Daftar 1 – Controllers\HomeController.vb
<HandleError()> _
Public Class HomeController
Inherits System.Web.Mvc.Controller
Function Index()
Return View()
End Function
<Authorize()> _
Function CompanySecrets()
Return View()
End Function
End Class
Jika Anda memanggil tindakan CompanySecrets() dengan memasukkan URL /Home/CompanySecrets di bilah alamat browser Anda, dan Anda bukan pengguna yang diautentikasi, maka Anda akan diarahkan ke tampilan Masuk secara otomatis (lihat Gambar 5).
Gambar 5 – Tampilan Masuk
Anda dapat menggunakan tampilan Masuk untuk memasukkan nama pengguna dan kata sandi Anda. Jika Anda bukan pengguna terdaftar maka Anda dapat mengklik tautan daftar untuk menavigasi ke tampilan Daftar (lihat Gambar 6). Anda dapat menggunakan tampilan Daftar untuk membuat akun pengguna baru.
Gambar 6 – Tampilan Register
Setelah berhasil masuk, Anda dapat melihat tampilan CompanySecrets (lihat Gambar 7). Secara default, Anda akan terus masuk hingga Anda menutup jendela browser Anda.
Gambar 7 - Tampilan CompanySecrets
Mengotorisasi berdasarkan Nama Pengguna atau Peran Pengguna
Anda dapat menggunakan atribut [Otorisasi] untuk membatasi akses ke tindakan pengontrol ke sekumpulan pengguna tertentu atau sekumpulan peran pengguna tertentu. Misalnya, pengontrol Home yang dimodifikasi di Listing 2 berisi dua tindakan baru bernama StephenSecrets() dan AdministratorSecrets().
Daftar 2 – Controllers\HomeController.vb
<HandleError()> _
Public Class HomeController
Inherits System.Web.Mvc.Controller
Function Index()
Return View()
End Function
<Authorize()> _
Function CompanySecrets()
Return View()
End Function
<Authorize(Users:="Stephen")> _
Function StephenSecrets()
Return View()
End Function
<Authorize(Roles:="Administrators")> _
Function AdministratorSecrets()
Return View()
End Function
End Class
Hanya pengguna dengan nama pengguna Stephen yang dapat memanggil tindakan StephenSecrets(). Semua pengguna lain dialihkan ke tampilan Masuk. Properti Pengguna menerima daftar nama akun pengguna yang dipisahkan koma.
Hanya pengguna dalam peran Administrator yang dapat memanggil tindakan AdministratorSecrets(). Misalnya, karena Sally adalah anggota grup Administrator, dia dapat memanggil tindakan AdministratorSecrets(). Semua pengguna lain dialihkan ke tampilan Masuk. Properti Peran menerima daftar nama peran yang dipisahkan koma.
Mengonfigurasi Autentikasi
Pada titik ini, Anda mungkin bertanya-tanya di mana akun pengguna dan informasi peran disimpan. Secara default, informasi disimpan dalam database SQL Express (RANU) bernama ASPNETDB.mdf yang terletak di folder App_Data aplikasi MVC Anda. Database ini dihasilkan oleh kerangka kerja ASP.NET secara otomatis saat Anda mulai menggunakan keanggotaan.
Untuk melihat database ASPNETDB.mdf di jendela Penjelajah Solusi, Anda harus terlebih dahulu memilih opsi menu Proyek, Tampilkan Semua File.
Menggunakan database SQL Express default tidak masalah saat mengembangkan aplikasi. Namun, kemungkinan besar, Anda tidak ingin menggunakan database ASPNETDB.mdf default untuk aplikasi produksi. Dalam hal ini, Anda dapat mengubah tempat informasi akun pengguna disimpan dengan menyelesaikan dua langkah berikut:
- Tambahkan objek database Application Services ke database produksi Anda - Ubah string koneksi aplikasi Anda untuk menunjuk ke database produksi Anda
Langkah pertama adalah menambahkan semua objek database yang diperlukan (tabel dan prosedur tersimpan) ke database produksi Anda. Cara term mudah untuk menambahkan objek ini ke database baru adalah dengan memanfaatkan Wizard Penyetelan ASP.NET SQL Server (lihat Gambar 8). Anda dapat meluncurkan alat ini dengan membuka Perintah Visual Studio 2008 dari grup program Microsoft Visual Studio 2008 dan menjalankan perintah berikut dari prompt perintah:
aspnet_regsql
Gambar 8 – Wizard Penyiapan ASP.NET SQL Server
Wizard Penyetelan ASP.NET SQL Server memungkinkan Anda memilih database SQL Server di jaringan Anda dan menginstal semua objek database yang diperlukan oleh layanan aplikasi ASP.NET. Server database tidak diperlukan untuk berada di komputer lokal Anda.
Catatan
Jika Anda tidak ingin menggunakan Wizard Penyetelan ASP.NET SQL Server, maka Anda bisa menemukan skrip SQL untuk menambahkan objek database layanan aplikasi di folder berikut:
C:\Windows\Microsoft.NET\Framework\v2.0.50727
Setelah membuat objek database yang diperlukan, Anda perlu memodifikasi koneksi database yang digunakan oleh aplikasi MVC Anda. Ubah string koneksi ApplicationServices dalam file konfigurasi web Anda (web.config) sehingga menunjuk ke database produksi. Misalnya, koneksi yang dimodifikasi dalam Mencantumkan 3 poin ke database bernama MyProductionDB (string koneksi ApplicationServices asli telah dikomentari).
Daftar 3 – Web.config
<connectionStrings>
<!--<add name="ApplicationServices" connectionString="data source=.\SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|aspnetdb.mdf;User Instance=true" providerName="System.Data.SqlClient"/>-->
<add name="ApplicationServices" connectionString="data source=localhost;Integrated Security=SSPI;Initial Catalog=MyProductionDB" />
</connectionStrings>
Mengonfigurasi Izin Database
Jika Anda menggunakan Keamanan Terpadu untuk menyambungkan ke database Anda, maka Anda harus menambahkan akun pengguna Windows yang benar sebagai login ke database Anda. Akun yang benar tergantung pada apakah Anda menggunakan Server Pengembangan ASP.NET atau Layanan Informasi Internet sebagai server web Anda. Akun pengguna yang benar juga tergantung pada sistem operasi Anda.
Jika Anda menggunakan ASP.NET Development Server (server web default yang digunakan oleh Visual Studio) maka aplikasi Anda dijalankan dalam konteks akun pengguna Windows Anda. Dalam hal ini, Anda perlu menambahkan akun pengguna Windows Anda sebagai login server database.
Atau, jika Anda menggunakan Layanan Informasi Internet, Anda perlu menambahkan akun ASPNET atau akun NT AUTHORITY/NETWORK SERVICE sebagai login server database. Jika Anda menggunakan Windows XP, tambahkan akun ASPNET sebagai login ke database Anda. Jika Anda menggunakan sistem operasi yang lebih baru, seperti Windows Vista atau Windows Server 2008, tambahkan akun NT AUTHORITY/NETWORK SERVICE sebagai login database.
Anda bisa menambahkan akun pengguna baru ke database Anda dengan menggunakan Microsoft SQL Server Management Studio (lihat Gambar 9).
Gambar 9 - Membuat login Microsoft SQL Server baru
Setelah membuat login yang diperlukan, Anda perlu memetakan login ke pengguna database dengan peran database yang tepat. Klik dua kali login dan pilih tab Pemetaan Pengguna. Pilih satu atau beberapa peran database layanan aplikasi. Misalnya, untuk mengautentikasi pengguna, Anda perlu mengaktifkan peran database aspnet_Membership_BasicAccess. Untuk membuat pengguna baru, Anda perlu mengaktifkan peran database aspnet_Membership_FullAccess (lihat Gambar 10).
Gambar 10 – Menambahkan peran database Application Services
Ringkasan
Dalam tutorial ini, Anda mempelajari cara menggunakan autentikasi Formulir saat membangun aplikasi MVC ASP.NET. Pertama, Anda mempelajari cara membuat pengguna dan peran baru dengan memanfaatkan Alat Administrasi Situs Web. Selanjutnya, Anda mempelajari cara menggunakan atribut [Otorisasi] untuk mencegah pengguna yang tidak sah memanggil tindakan pengontrol. Terakhir, Anda mempelajari cara mengonfigurasi aplikasi MVC untuk menyimpan informasi pengguna dan peran dalam database produksi.