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 Scott Mitchell
Nota
Sejak artikel ini ditulis, penyedia Keanggotaan ASP.NET telah digantikan oleh identitas ASP.NET. Kami sangat menyarankan untuk memperbarui aplikasi untuk menggunakan platform identitas ASP.NET daripada penyedia Keanggotaan yang ditampilkan pada saat artikel ini ditulis. ASP.NET Identity memiliki sejumlah keunggulan dibandingkan sistem Keanggotaan ASP.NET, termasuk :
- Performa yang lebih baik
- Peningkatan ekstensibilitas dan uji coba
- Dukungan untuk OAuth, OpenID Connect, dan autentikasi dua faktor
- Dukungan Identitas berbasis klaim
- Interoperabilitas yang lebih baik dengan ASP.Net Core
Alat Administrasi Situs Web ASP.NET (WSAT) menyediakan antarmuka pengguna berbasis web untuk mengonfigurasi pengaturan Keanggotaan dan Peran dan untuk membuat, mengedit, dan menghapus pengguna dan peran. Sayangnya, WSAT hanya berfungsi ketika dikunjungi dari localhost, yang berarti Bahwa Anda tidak dapat menjangkau Alat Administrasi situs web produksi melalui browser Anda. Kabar baiknya adalah ada solusi yang memungkinkan untuk mengelola pengguna dan peran pada produksi. Tutorial ini melihat solusi ini dan lainnya.
Pendahuluan
ASP.NET 2.0 memperkenalkan sejumlah layanan aplikasi, yang merupakan rangkaian layanan blok bangunan yang dapat Anda tambahkan ke aplikasi web Anda. Kami menambahkan layanan Keanggotaan dan Peran ke situs web Ulasan Buku kembali di tutorial Mengonfigurasi Situs Web yang Menggunakan Layanan Aplikasi. Layanan Keanggotaan memfasilitasi pembuatan dan pengelolaan akun pengguna; layanan Peran menawarkan API untuk mengategorikan pengguna ke dalam grup. Situs Ulasan Buku memiliki tiga akun pengguna - Scott, Jisun, dan Alice - dan satu peran, Admin, dengan Scott dan Jisun dalam peran Admin.
Layanan aplikasi dari ASP.NET tidak terikat pada implementasi tertentu. Sebagai gantinya, Anda menginstruksikan layanan aplikasi untuk menggunakan penyedia tertentu, dan penyedia tersebut mengimplementasikan layanan menggunakan teknologi tertentu. Kami mengonfigurasi aplikasi web Ulasan Buku untuk menggunakan penyedia SqlMembershipProvider
dan SqlRoleProvider
dalam layanan Keanggotaan dan Peran. Kedua penyedia ini menyimpan akun pengguna dan informasi peran dalam database SQL Server dan merupakan penyedia yang paling umum digunakan untuk aplikasi web berbasis Internet yang dihosting di perusahaan hosting web.
Tantangan umum bagi pengembang yang menggunakan layanan Keanggotaan dan Peran adalah mengelola pengguna dan peran di lingkungan produksi. Bagaimana Anda menghapus akun pengguna dari situs web produksi, menambahkan peran baru, atau menambahkan pengguna yang sudah ada ke peran yang sudah ada? Tutorial ini mengeksplorasi berbagai teknik untuk mengelola pengguna dan peran di situs web produksi.
Menggunakan Alat Administrasi Situs Web ASP.NET
ASP.NET menyertakan Web Site Administration Tool (WSAT) yang memudahkan untuk membuat dan mengelola akun dan peran pengguna serta menentukan aturan otorisasi berbasis pengguna dan peran. Untuk menggunakan WSAT, klik ikon Konfigurasi ASP.NET di Penjelajah Solusi, atau buka menu Situs Web atau Proyek dan pilih opsi Konfigurasi ASP.NET. Salah satu pendekatan meluncurkan browser web dan mengarahkannya ke WSAT di alamat seperti: http://localhost:portNumber/asp.netwebadminfiles/default.aspx?applicationPhysicalPath=pathToApplication
WSAT dibagi menjadi tiga bagian:
- Keamanan - mengelola pengguna, peran, dan aturan otorisasi.
- ApplicationConfiguration - kelola <pengaturan appSettings> dan SMTP dari sini. Anda juga dapat membuat aplikasi offline dan mengelola pengaturan penelusuran kesalahan dan pelacakan dari sini, serta menentukan halaman kesalahan kustom default.
- ProviderConfiguration - konfigurasikan penyedia yang digunakan oleh layanan aplikasi.
Bagian Keamanan (ditunjukkan pada Gambar 1) menyertakan tautan untuk membuat pengguna baru, mengelola pengguna, membuat dan mengelola peran, serta membuat dan mengelola aturan akses. Dari sini Anda dapat menambahkan peran baru ke sistem, menghapus pengguna yang sudah ada, atau menambahkan atau menghapus peran dari akun pengguna tertentu.
Gambar 1: Bagian Keamanan WSAT Mencakup Opsi untuk Mengelola Pengguna dan Peran
(Klik untuk melihat gambar ukuran penuh)
Sayangnya, WSAT hanya dapat diakses secara lokal. Anda tidak dapat mengunjungi WSAT di situs web produksi jarak jauh Anda; jika Anda mengunjungi www.yoursite.com/asp.netwebadminfiles/default.aspx
Anda mendapatkan respons 404 Tidak Ditemukan. Kode yang mendukung WSAT menggunakan Membership
kelas dan Roles
di .NET Framework untuk membuat, mengedit, dan menghapus pengguna dan peran. Kelas ini memeriksa informasi konfigurasi aplikasi web untuk menentukan penyedia mana yang akan digunakan; seperti yang kita bahas dalam tutorial Mengonfigurasi Situs Web yang Menggunakan Layanan Aplikasi, kami menyiapkan situs web Ulasan Buku untuk menggunakan penyedia SqlMembershipProvider
dan SqlRoleProvider
. Ini mencakup penambahan bagian <membership>
dan <roleManager>
ke bagian Web.config
.
<?xml version="1.0"?>
<configuration>
...
<connectionStrings configSource="ConfigSections\databaseConnectionStrings.config" />
<system.web>
...
<membership defaultProvider="ReviewMembership">
<providers>
<clear />
<add type="System.Web.Security.SqlMembershipProvider"
name="ReviewMembership"
connectionStringName="ReviewsConnectionString"
applicationName="BookReviews" />
</providers>
</membership>
<roleManager enabled="true" defaultProvider="ReviewRole">
<providers>
<clear />
<add type="System.Web.Security.SqlRoleProvider"
name="ReviewRole"
connectionStringName="ReviewsConnectionString"
applicationName="BookReviews" />
</providers>
</roleManager>
</system.web>
...
</configuration>
Perhatikan bahwa bagian <membership>
dan <roleManager>
mengacu masing-masing pada penyedia SqlMembershipProvider
dan SqlRoleProvider
dalam atribut type
mereka. Penyedia ini menyimpan informasi pengguna dan peran dalam database SQL Server tertentu. Database yang digunakan oleh penyedia ini ditentukan oleh atribut connectionStringName
, ReviewsConnectionString
, yang ditentukan dalam file ~/ConfigSections/databaseConnectionStrings.config
. Ingat bahwa databaseConnectionStrings.config
file di lingkungan pengembangan berisi string koneksi ke database pengembangan sedangkan databaseConnectionStrings.config
file pada produksi berisi string koneksi ke database produksi.
Singkatnya, WSAT harus diakses secara lokal melalui lingkungan pengembangan, dan berfungsi dengan informasi pengguna dan peran dalam database yang ditentukan dalam file databaseConnectionStrings.config
. Akibatnya, jika kita mengubah informasi string koneksi dalam databaseConnectionStrings.config
file pada lingkungan pengembangan, kita dapat menggunakan WSAT secara lokal untuk mengelola pengguna dan peran di lingkungan produksi.
Untuk mengilustrasikan fungsionalitas ini, buka databaseConnectionStrings.config
file di Visual Studio pada lingkungan pengembangan dan ganti string koneksi database pengembangan dengan string koneksi database produksi. Kemudian luncurkan WSAT, buka tab Keamanan, dan tambahkan pengguna baru bernama Sam.
Gambar 2 memperlihatkan layar WSAT saat membuat akun ini.
Gambar 2: Buat Pengguna Baru Bernama Sam Di Lingkungan Produksi
(Klik untuk melihat gambar ukuran penuh)
Karena kami mengubah databaseConnectionStrings.config
string koneksi agar menunjuk ke server database produksi, Sam ditambahkan sebagai pengguna di lingkungan produksi. Untuk memverifikasi ini, ubah string koneksi dalam databaseConnectionStrings.config
file kembali ke database pengembangan lalu kunjungi Login.aspx
halaman di lingkungan pengembangan. Coba masuk sebagai Sam (lihat Gambar 3).
Gambar 3: Anda Tidak Dapat Login Sebagai Sam di Lingkungan Pengembangan
(Klik untuk melihat gambar ukuran penuh)
Anda tidak dapat masuk sebagai Sam di lingkungan pengembangan karena informasi akun pengguna tidak ada di database lokal. Sebaliknya, itu ditambahkan ke database produksi. Untuk memverifikasi ini, lihat konten aspnet_Users
tabel dalam database pengembangan dan produksi. Di lingkungan pengembangan seharusnya hanya ada tiga catatan untuk pengguna Scott, Jisun, dan Alice. Namun, aspnet_Users
tabel dalam database produksi memiliki empat catatan: Scott, Jisun, Alice, dan Sam. Akibatnya, Sam dapat login melalui situs web pada lingkungan produksi, tetapi tidak melalui lingkungan pengembangan.
Gambar 4: Sam Dapat Masuk di Situs Web Produksi
(Klik untuk melihat gambar ukuran penuh)
Nota
Jangan lupa untuk mengubah string koneksi dalam databaseConnectionStrings.config
file kembali ke string koneksi database pengembangan ketika Anda selesai bekerja dengan WSAT jika tidak, Anda akan bekerja dengan data produksi saat menguji situs melalui lingkungan pengembangan. Perlu diingat juga bahwa meskipun teknik yang baru saja kita bahas memungkinkan kita menggunakan WSAT untuk mengelola pengguna dan peran dari jarak jauh, perubahan pada salah satu opsi konfigurasi WSAT lainnya (aturan akses, pengaturan SMTP, pengaturan penelusuran kesalahan dan pelacakan, dan sebagainya) mengubah Web.config
file. Akibatnya, setiap perubahan yang dilakukan pada pengaturan berlaku untuk lingkungan pengembangan dan bukan ke lingkungan produksi.
Membuat Halaman Web Pengelolaan Pengguna dan Peran Kustom
WSAT menyediakan sistem siap pakai untuk mengelola pengguna dan peran, tetapi hanya bisa dijalankan secara lokal dan mengharuskan melakukan perubahan pada informasi string koneksi untuk mengelola pengguna dan peran di lingkungan produksi. Sebagian besar situs web yang mendukung akun pengguna juga menyertakan sejumlah halaman web administrasi pengguna dan peran yang memungkinkan administrator mengelola pengguna dan peran dari halaman dalam situs. Halaman administrasi berbasis web tersebut membuatnya jauh lebih mudah untuk mengelola pengguna dan peran dan sangat penting untuk situs di mana mungkin ada banyak administrator atau administrator yang tidak memiliki akses ke atau latar belakang teknis untuk menggunakan Visual Studio untuk meluncurkan WSAT.
ASP.NET menyertakan sejumlah kontrol Web bawaan terkait login yang membuat penerapan banyak halaman web administratif ini semudah menyeret dan meletakkan. Misalnya, Anda dapat membuat halaman bagi administrator untuk membuat akun pengguna baru dengan menyeret kontrol CreateUserWizard ke halaman dan mengatur beberapa properti. Bahkan, halaman untuk membuat pengguna di WSAT yang ditampilkan di Gambar 2 menggunakan kontrol CreateUserWizard yang sama yang dapat Anda tambahkan ke halaman Anda. Selain itu, fungsionalitas layanan Keanggotaan dan Peran tersedia secara terprogram melalui Membership
kelas dan Roles
dalam .NET Framework. Dengan kelas ini, Anda dapat menulis kode untuk membuat, mengedit, dan menghapus pengguna dan peran, serta menambahkan atau menghapus pengguna ke peran, untuk menentukan pengguna apa dalam peran apa, dan untuk melakukan tugas terkait pengguna dan peran lainnya.
Dalam tutorial Mengonfigurasi Situs Web yang Menggunakan Layanan Aplikasi, saya menambahkan halaman ke Admin
folder bernama CreateAccount.aspx
. Halaman ini memungkinkan administrator untuk menambahkan akun pengguna baru ke situs dan menentukan apakah pengguna yang baru dibuat berada dalam peran Admin atau tidak (lihat Gambar 5).
Gambar 5: Administrator Dapat Membuat Akun Pengguna Baru
(Klik untuk melihat gambar ukuran penuh)
Untuk melihat lebih rinci tentang membangun halaman administrasi pengguna dan peran, bersama dengan instruksi langkah demi langkah tentang menggunakan Membership
kelas dan Roles
dan kontrol Web ASP.NET terkait login, pastikan untuk membaca Tutorial Keamanan Situs Web saya. Di sana Anda akan menemukan panduan tentang cara membuat halaman web untuk membuat akun baru, membuat dan mengelola peran, menetapkan pengguna ke peran, dan tugas administratif umum lainnya.
Untuk menerapkan fungsionalitas seperti WSAT di situs web produksi, Anda selalu dapat membangun serangkaian halaman web Anda sendiri yang mengimplementasikan fitur WSAT. Untuk membantu memulai, lihat kode sumber WSAT, yang terletak di folder %WINDIR%\Microsoft.NET\Framework\v2.0.50727\ASP.NETWebAdminFiles
. Opsi lain adalah menggunakan alternatif WSAT dari Dan Clem, yang ia bagikan dalam artikelnya, "Rolling Your Own Web Site Administration Tool." Dan memandu pembaca melalui proses membangun alat seperti WSAT kustom, termasuk kode sumber aplikasinya untuk diunduh (di C#), dan memberikan instruksi langkah demi langkah untuk menambahkan WSAT kustomnya ke situs web yang dihosting.
Ringkasan
Alat Administrasi Situs Web (WSAT) ASP.NET dapat digunakan bersama dengan layanan aplikasi Keanggotaan dan Peran untuk mengelola informasi pengguna dan peran untuk situs web Anda. Sayangnya, WSAT hanya dapat diakses secara lokal dan tidak dapat dikunjungi dari situs web produksi Anda. Namun, dengan mengubah string koneksi di lingkungan pengembangan untuk menunjuk ke database produksi, Anda dapat menggunakan WSAT untuk mengelola pengguna dan peran di situs web produksi.
Meskipun pendekatan WSAT memberikan cara yang cepat dan mudah untuk mengelola pengguna dan peran, pendekatan ini mengharuskan peluncuran WSAT dari Visual Studio serta perubahan sementara pada informasi string koneksi. WSAT menawarkan cara cepat untuk mengelola pengguna dan peran pada produksi, tetapi rumit dan tidak berfungsi dengan baik untuk situs web dengan beberapa administrator atau dengan administrator yang tidak memiliki atau tidak terbiasa dengan Visual Studio dan WSAT. Untuk alasan ini, sebagian besar situs web yang mendukung akun pengguna menyertakan sekumpulan halaman web administratif. Sekumpulan halaman web seperti itu menghilangkan kebutuhan akan WSAT dan digunakan oleh berbagai pengguna administratif dari komputer mana pun.
Selamat Pemrograman!
Bacaan Lebih Lanjut
Untuk informasi selengkapnya tentang topik yang dibahas dalam tutorial ini, lihat sumber daya berikut:
- Memeriksa Keanggotaan, Peran, dan Profil ASP.NET
- Membangun Alat Administrasi Situs Web Anda Sendiri
- Gambaran Umum Alat Administrasi Situs Web
- Tutorial Keamanan Situs Web