Bagikan melalui


Pengguna dan Peran Di Situs Web Produksi (C#)

oleh Scott Mitchell

Catatan

Sejak artikel ini ditulis, penyedia Keanggotaan ASP.NET telah digantikan oleh ASP.NET Identity. 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 kemampuan pengujian
  • 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 mencapai 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.

Pengantar

ASP.NET 2.0 memperkenalkan sejumlah layanan aplikasi, yang merupakan serangkaian layanan blok penyusun yang dapat Anda tambahkan ke aplikasi web Anda. Kami menambahkan layanan Keanggotaan dan Peran ke situs web Ulasan Buku kembali dalam 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.

ASP. Layanan aplikasi NET tidak terkait dengan 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 SqlMembershipProvider penyedia dan SqlRoleProvider untuk 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 pada 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 (diperlihatkan dalam 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.

Cuplikan layar yang memperlihatkan opsi untuk mengelola pengguna dan peran.

Gambar 1: Bagian Keamanan WSAT Menyertakan 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 dalam .NET Framework untuk membuat, mengedit, dan menghapus pengguna dan peran. Kelas-kelas ini berkonsultasi dengan informasi konfigurasi aplikasi web untuk menentukan penyedia apa yang akan digunakan; kembali dalam tutorial Mengonfigurasi Situs Web yang Menggunakan Layanan Aplikasi, kami menyiapkan situs web Ulasan Buku untuk menggunakan SqlMembershipProvider penyedia dan SqlRoleProvider . Ini mencakup penambahan <membership> dan <roleManager> bagian ke 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> mereferensikan SqlMembershipProvider penyedia dan SqlRoleProvider dalam atribut mereka type , masing-masing. Penyedia ini menyimpan informasi pengguna dan peran dalam database SQL Server tertentu. Database yang digunakan oleh penyedia ini ditentukan oleh connectionStringName atribut , ReviewsConnectionStringyang didefinisikan dalam ~/ConfigSections/databaseConnectionStrings.config file . 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 databaseConnectionStrings.config file. 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 dengan kata sandi "password!" (kurang tanda kutip). Gambar 2 memperlihatkan layar WSAT saat membuat akun ini.

Cuplikan layar yang memperlihatkan pengguna baru yang dibuat di lingkungan produksi.

Gambar 2: Buat Pengguna Baru Bernama Sam Di Lingkungan Produksi
(Klik untuk melihat gambar ukuran penuh)

Karena kami mengubah string databaseConnectionStrings.config koneksi untuk 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. Cobalah untuk masuk sebagai Sam (lihat Gambar 3).

Cuplikan layar yang menunjukkan bahwa Anda tidak dapat masuk sebagai Sam di lingkungan pengembangan.

Gambar 3: Anda Tidak Dapat Masuk 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, 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 masuk melalui situs web dalam produksi, tetapi tidak melalui lingkungan pengembangan.

Cuplikan layar yang menunjukkan bahwa Sam dapat masuk ke situs web produksi.

Gambar 4: Sam Dapat Masuk di Situs Web Produksi
(Klik untuk melihat gambar ukuran penuh)

Catatan

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 untuk lingkungan produksi.

Membuat Halaman Web Manajemen Pengguna dan Peran Kustom

WSAT menyediakan sistem out of the box untuk mengelola pengguna dan peran, tetapi hanya dapat diluncurkan secara lokal dan mengharuskan membuat perubahan pada informasi string koneksi untuk mengelola pengguna dan peran pada 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 seperti itu 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 terkait Login bawaan yang membuat penerapan banyak halaman web administratif ini semampu seret dan letakkan. 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 untuk 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).

Cuplikan layar yang memperlihatkan bahwa administrator dapat membuat akun pengguna baru.

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. Pilihan lain adalah menggunakan alternatif WSAT 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 cepat dan mudah untuk mengelola pengguna dan peran, WSAT perlu meluncurkan WSAT dari Visual Studio serta perubahan sementara pada informasi string koneksi. WSAT menawarkan cara cepat untuk mengelola pengguna dan peran dalam 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 semacam 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: