Pengaturan Keamanan dengan Login Control
Pengaturan Keamanan dengan Login Control
Pengaturan Keamanan dengan Login Control
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
Seri Workshop ASP.NET 2.0<br />
<strong>Pengaturan</strong> <strong>Keamanan</strong> <strong>dengan</strong> <strong>Login</strong> <strong>Control</strong><br />
Bernard Pakpahan<br />
bern4d@gmail.com<br />
M.Choirul Amri<br />
http://choirulamri.or.id<br />
*Panduan ini disusun berdasarkan Lab Manual ASP.NET Teched 2006 (USA), serta referensi MSDN website.<br />
Lisensi Dokumen:<br />
Copyright © 2007 IlmuKomputer.Com<br />
Seluruh dokumen di IlmuKomputer.Com dapat digunakan, dimodifikasi dan<br />
disebarkan secara bebas untuk tujuan bukan komersial (nonprofit), <strong>dengan</strong> syarat<br />
tidak menghapus atau merubah atribut penulis dan pernyataan copyright yang<br />
disertakan dalam setiap dokumen. Tidak diperbolehkan melakukan penulisan ulang,<br />
kecuali mendapatkan ijin terlebih dahulu dari IlmuKomputer.Com.<br />
Panduan workshop ini ditujukan untuk para pembaca yang ingin mempelajari pengaturan keamanan<br />
menggunakan kontrol <strong>Login</strong> di ASP.NET 2.0. Tulisan ini merupakan kelanjutan dari 2 tulisan<br />
sebelumnya:<br />
• Mengakses Database <strong>dengan</strong> ASP.NET 2.0<br />
• Master Pages, Themes, dan Multiple View<br />
Kedua tulisan tersebut juga telah dipublikasikan di IlmuKomputer.Com.<br />
Dalam tulisan kali ini akan dipaparkan pembuatan halaman login, registrasi keanggotaan, serta<br />
pengaturan password. ASP.NET 2.0 menyediakan framework untuk mengatur keanggotaan dan<br />
keamanan aplikasi <strong>dengan</strong> menyediakan kelas Membership dan Roles. Untuk antar muka, telah<br />
tersedia berbagai kontrol yang dapat langsung dipakai atau dikustomisasi.<br />
Workshop ini menggunakan database yang SQL Server 2005 <strong>dengan</strong> editor Visual Studio 2005<br />
Express Edition. Berikut beberapa persiapan yang perlu Anda lakukan sebelum mempraktekkan<br />
langkah-langkah latihan dalam panduan ini:<br />
1) Install Visual Studio 2005 (VS2005). Anda juga dapat menggunakan versi gratis VS2005<br />
untuk editor web, yaitu Visual Web Developer Express Edition. Bisa didownload gratis di:<br />
http://msdn.microsoft.com/vstudio/express/support/install/<br />
2) Install SQL Server 2005. Semua panduan dalam tulisan ini menggunakan SQL Server 2005<br />
Express Edition, yang merupakan versi free SQL Server 2005.
Bisa didownload di:<br />
http://www.microsoft.com/downloads/details.aspx?familyid=4C6BA9FD-319A-4887-<br />
BC75-3B02B5E48A40&displaylang=en.<br />
3) Ukuran file download cukup besar (sekitar 650 MB). Penulis telah menitipkan beberapa<br />
keeping CD master Express edition tersebut di sekretariat IlmuKomputer.com (gedung<br />
Brainmatics-Bidakara Jakarta), bebas untuk digandakan. Jika Anda mengalami kesulitan<br />
akses internet, silakan menghubungi Sdr. Chaeruddin via email info@brainmatics.com<br />
untuk mendapatkan salinan CD tersebut. Tentu saja <strong>dengan</strong> mengganti biaya penyalinan CD<br />
dan ongkos kirim.<br />
4) Buat folder baru <strong>dengan</strong> nama MSLabs di drive C Anda. Download file latihan dari situs<br />
IlmuKomputer.com (ASPNETMEMBER.Zip), extract file tersebut dan salin folder<br />
ASP.NET ke dalam folder C:\MSLabs.<br />
5) Jika Anda belum memiliki database sample MyComics dan Pubs, jalankan skrip<br />
Installpubs.cmd dan InstallMyComics.cmd yang terdapat di folder<br />
C:\MSLabs\ASP.NET\LabFiles\Database. Kedua skrip tersebut akan membuat database<br />
pubs dan MyComics di dalam SQL Server 2005 Express yang akan digunakan selama<br />
latihan.<br />
6) Jika Anda tidak menggunakan SQL Server 2005 Express Edition, maka Anda perlu<br />
mengedit file InstallMyComics.cmd dan Installpubs.cmd sebelum menjalankan kedua file<br />
tersebut. Edit dan sesuaikan nama SQL Server sesuai <strong>dengan</strong> instalasi SQL Server di<br />
komputer Anda. Misalnya : ganti localhost\sqlexpress menjadi localhost\sql2005.<br />
Pendahuluan<br />
Autentikasi Form adalah cara yang paling populer aplikasi berbasis internet. Autentikasi<br />
jenis ini menggunakan form yang meminta user untuk memasukkan User ID dan passworrd<br />
sebelum user dapat mengakses halaman yang diinginkan. Ketika user yang tak dikenal<br />
(yang tidak terauntentikasi) mencoba mengakases sebuah halaman yang hanya tersedia<br />
untuk user terautentikasi, ASP.NET secara otomatis mengarahkan mereka ke halaman login.<br />
Secara umum, cara kerja authentikasi form di ASP.NET 2.0 adalah sebagai berikut:<br />
• Sebuah membership service untuk mengatur pengguna dan user credentials<br />
• Kontrol <strong>Login</strong> untuk proses login pengguna, dan mendaftarkan pengguna baru<br />
• Sebuah role management service digunakan untuk role-based security<br />
Pada lab ini, Anda akan menggunakan semua fasilitas tersebut untuk membangun sebuah<br />
antar muka administrasi yang aman untuk aplikasi MyComics. Anda akan memulai <strong>dengan</strong><br />
membuat sebuah halaman login. Kemudian mengamankan halaman admin yang sehingga<br />
user yang terauntentikasi yang dapat mengaksesnya, dan menambahkan link untuk master<br />
page untuk navigasi ke halaman admin dan login. Akhirnya, Anda akan menggunakan rolebased<br />
security untuk membatasi hak akses halaman admin sehingga hanya administrator<br />
yang dapat mengaksesnya.<br />
Perkiraan waktu untuk menyesaikan lab ini: 90 menit
Latihan 1<br />
Add a login page<br />
In this Latihan, Anda akan membuat sebuah halaman login yang didalamnya termasuk<br />
kontrol <strong>Login</strong> untuk proses login user yang telah ada dan sebuah kontrol CreateUserWizard<br />
untuk register pengguna baru.<br />
Tugas Langkah Detail<br />
1. Membuka Website<br />
2. Tambahkan sebuah<br />
halaman pada<br />
Website<br />
a. Jalankan VWD <strong>dengan</strong> gunakan perintah “File->Open Web Site” untuk membuka web<br />
C:\MSLabs\ASP.NET\Starter\\Lab4.<br />
a. Klik kanan C:\..\Lab4 di Solution Explorer dan gunakan perintah “Add New Item”<br />
untuk menambahkan sebuah halaman yang bernama <strong>Login</strong>.aspx. Pilih “Web Form”<br />
dari tipe template dan cek kotak “Place code in separate file”dan “Select master<br />
page”. Sebelum mengklik tombol Add, pastikan C# atau Visual Basic terpilih di<br />
kotak Language.<br />
b. Letika ditanya untuk memilih master page, pilih Site.master.<br />
c. Ubah Title=“Untitled Page” menjadi Title=“MyComics <strong>Login</strong>” di @ Page directive<br />
<strong>Login</strong>.aspx.<br />
d. Klik tombol Design untuk berpindah ke Design view.<br />
e. Letakkan kursor di kontrol Content, dan lalu gunakan perintah “Layout->Insert<br />
Table” sebuah tabel “vertical split”:<br />
f. Klik kanan sel bagian kiri tabel dan pilih “Insert->Cell to the Right.”<br />
g. Set properti Width sel bagian tengah tabel menjadi 1 dan BgColor menjadi Gray .
3. Menambahkan<br />
sebuah kontrol<br />
<strong>Login</strong> dan sebuah<br />
kontrol<br />
CreateUserWizard<br />
h. Set Width selpaling kiri menjadi 50%. Juga set property VAlign menjadi “top.”<br />
i. Set properti VAlign sel paling kanan tabel menjadi “top.” Sekarang Anda dapat<br />
menambahkan kontrol ke halaman.<br />
a. Geser sebuah kontrol <strong>Login</strong> dari Toolbox dan geser sel paling kanan tabel.<br />
b. Geser sebuah kontrol CreateUserWizard dari Toolbox dan letakkan di sel paling<br />
kanan tabel.<br />
c. Tekan Ctrl+F5 untuk menjalankan <strong>Login</strong>.aspx. Inilah yang seharusnya tampil:<br />
���� Catatan:<br />
Jika Anda ingin memcantik tampilan halaman,gunakan perintah “Auto<br />
Format” dikedua menu “<strong>Login</strong> Tasks” and “CreateUserWizard Tasks”.<br />
d. Tutup browser dan kembali ke VWD.
Latihan 2<br />
Menerapkan setting authentication dan authorization<br />
Pada Latihan ini, Anda akan mengaktifkan Autentikasi Form dan konfigurasi admin<br />
sehingga hanya dapat diakses pengguna yang terauntentikasi. Anda juga akan melakukan<br />
konfigurasi aplikasi untuk menggunakan SQL Server membership provider ASP.NET dan<br />
membuat sebuah database untuk provider.<br />
Tugas Langkah Detail<br />
1. Memindahkan<br />
halaman admin<br />
2. Jalankan Security<br />
Setup Wizard<br />
a. Klik kanan C:\..\Lab4 di Solution Explorer dan pilih “New Folder.” Dan beri nama<br />
“Secure”.<br />
b. Pindahkan Admin.aspx dan Admin.aspx.cs ke folder Secure.<br />
3. Gunakan perintah “Website->ASP.NET Configuration” untuk menampilkan WebSite<br />
Administration Tool.<br />
a. Pada WebSite Administration Tool, klik tab Security di bagian atas halaman atau<br />
link Security dibagian isi halaman.<br />
b. Klik “Use the security Setup Wizard to configure security step by step” untuk<br />
memulai Security Setup Wizard.<br />
c. Pada step 1 dari Security Setup Wizard (“Welcome”), klik Next.<br />
d. Pada step 2 dari Security Setup Wizard (“Select Access Method”), pilih “From the<br />
internet” dan klik Next.<br />
e. Pada step 3 (“Data Store”), klik Next.<br />
f. Pada step 4 (“Define Roles”), klik Next. Anda akan mengaktifkan role management<br />
nanti.<br />
g. Pada step 5 (“Add New Users”), isi form untuk membuat seorang pengguna.<br />
(Ingatlah user name dan password yang Anda masukkan karena Anda akan<br />
membutuhkannya nanti. Isikan Joe pada user name dan P@ssw0rd pada password.
Juga perhatikan Web Site Administration Tool memaksakan passwords password<br />
yang rumit disini.) Lalu klik tombol “Create User” diikuti <strong>dengan</strong> tombol Next.<br />
h. Pada step 6 (“Add New Access Rules”), pilih folder Secure di tree view dibawah<br />
“Select a directory for this rule” seperti ditunjukkan pada gambar dibawah ini. Lalu<br />
pilih “Anonymous users” dan “Deny” dan klik “Add This Rule” untuk<br />
menambahkan sebuah rule di Web.config yang menolak user unauthenticated akses<br />
ke direktori Secure. Lalu klik Next.<br />
i. Pada step 7 (“Complete”), klik Finish.<br />
j. Berpindahlah ke VWD dan buka Web.config dan cobalah untuk perubahan yang<br />
dibuat oleh Security Setup Wizard. Klik kanan project web dan pilih “Refresh” jika<br />
Anda tidak menemukan file Web.Config.<br />
k. Sebuah file Web.config baru telah ditambahkan ke Website oleh Security Setup<br />
Wizard. File tersebut terletak di Secure folder, dan file tersebut merupakan<br />
authorization rules untuk folder Secure.<br />
l. Buka Secure\Web.config dan periksa element . Bagaimana element<br />
itu berhubungan <strong>dengan</strong> authorization rule yang Anda buat Security Setup Wizard.<br />
Konfigurasi tersebut menolak (deny) smua pengguna yang tidak dikenal.<br />
m. Sebuah file database <strong>dengan</strong> nama ASPNETDB.mdf ditambahkan ke website oleh<br />
security wizard. Fle tersebut terletak di App_Data, dan merupakan database SQL<br />
Server yang diattach ke SQLExpress.
4. Test setting<br />
keamanan<br />
���� Dengan membuat seorang pengguna melalui Web Admin Anda telah<br />
membuat database SQL Server Express berisi aplikasi Anda. Database<br />
berisi setting keamanan untuk aplikasi Anda.<br />
n. Klik-kanan pada ASPNETDB.MDF dan pilih Open.<br />
o. Anda akan pindah ke jendela Server Explorer dan akan ada koneksi ke database<br />
ASPNETDB.<br />
p. Perhatikan tabel-tabel ASPNETDB dan review. Lihat, jika Anda dapat menemukan<br />
pengguna yang Anda tambahkan.<br />
a. Pilih Default.aspx di jendela Solution Explorer dan tekan Ctrl+F5 untuk<br />
menjalankan. Pastikan Default.aspx (bukan halaman login) muncul di browser.<br />
b. Ubah “Default.aspx” di address bar browser ke “Secure/Admin.aspx.” Pastikan<br />
muncul <strong>Login</strong>.aspx, seperti ditunjukkan dibawah ini.<br />
c. <strong>Login</strong> <strong>dengan</strong> menggunakan user name dan password yang Anda buat di Security<br />
Setup Wizard. Pastikan Admin.aspx muncul browser.<br />
d. Klik tombol Back browser dua kali untuk kembali Default.aspx.<br />
e. Ubah “Default.aspx” address bar di browser untuk “Secure/Admin.aspx” lagi.<br />
Pastikan halaman Admin.aspx muncul tanpa memerlukan proses login lagi.<br />
f. Tutup browser dan kembali ke VWD.
Latihan 3<br />
Tambahkan link navigasi untuk master page<br />
Pada Latihan, Anda akan menambahkan link untuk master page untuk navigasi ke<br />
Admin.aspx dan untuk login dan logout. Link akan berbentuk kontrol HyperLink sederhana,<br />
yang lain kontrol <strong>Login</strong>Status. Anda akan juga sebuah public method untuk master page gar<br />
dapat memunculkan halaman login dan menyembunyikannya.<br />
Tugas Langkah Detail<br />
1. Menambahkan<br />
link ke master<br />
page<br />
a. Buka Site.master di designer dan berpindah ke Source view.<br />
b. Caru sel yang mengandung kontrol HyperLink yang mengarahkan<br />
~/Images/MyComics.gif. Sekarang sel tersebut memiliki isi seperti ini:<br />
Hyperlink<br />
c. Edit isi sel agar kelihatan seperti ini: (teks akan ditemukan di C:\<br />
MSLabs\ASP.NET\LabFiles\Lab4.txt)<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
|<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
���� Apa yang Anda lakukan adalah menyisipkan 1-baris, 2-sel HTML<br />
kedalam sel yang telah ada—Salah satunya berisibanner MyComics—
2. Menyembunyikan<br />
halaman login<br />
dan menempatkan HyperLink yabg telah ada pada sel sebelah kanan<br />
sekaligus menambahkan sebuah HyperLink dan sebuah kontrol<br />
<strong>Login</strong>Status sel sebelah kanan.Letakkan kontrol baru diselnya untuk<br />
memungkinkan Anda memindahkan ke sudut kanan atas banner. Anda<br />
juga telah membungkusnya (dan teks yang memisahkannya) di sebuah<br />
Panel control sehingga nanti Anda dapat menampilikan dan<br />
menyembunyikan mereka <strong>dengan</strong> mengubah properti visibility panel.<br />
���� Modifikasi ini dapat dibuat di Design view, tetapi alam lebih mudah<br />
melakukannya di Source View. VWD mendukung penuh koding HTML<br />
secara manual.<br />
d. Jalankan Default.aspx di browser dan pastikan links yang berjudul “Admin” dan<br />
“<strong>Login</strong>” muncul disdut kanan atas, seperti gambar dibawah ini. Juga pastikan <strong>dengan</strong><br />
mngklik salah satu link akan mengarahkan Anda ke halaman <strong>Login</strong>.<br />
e. Tutup browser dan kembali ke VWD.<br />
a. Buka Site.master. dan tambahkan method dibawah ke Site class:<br />
C#<br />
VB<br />
public void HideBannerLinks ()<br />
{<br />
LinksPanel.Visible = false;<br />
}<br />
Public Sub HideBannerLinks()<br />
LinksPanel.Visible = False<br />
End Sub<br />
b. Buka <strong>Login</strong>.aspx di Design view dan double-klik bodi halaman untuk menambahkan<br />
method Page_Load pada <strong>Login</strong>.aspx.<br />
c. Tambahkan pernyataan berikut ini kedalam method Page_Load:<br />
C#<br />
VB<br />
((Site) Master).HideBannerLinks ();<br />
CType(Master, Site).HideBannerLinks()<br />
d. Jalankan Default.aspx di browser Anda.
3. Mengubah aksi<br />
logout.<br />
e. Tekan link Admin di sudut kanan atas. Ketika halaman login muncul, pastikan link<br />
“Admin” dan “<strong>Login</strong>” tidak muncul.<br />
f. <strong>Login</strong> menggunakan user name dan password yang Anda register sebelumnya.<br />
Pastikan Admin.aspx muncul, dan link disudut kanan atas tertulis “Logout” sebagai<br />
pengganti “<strong>Login</strong>,” seperti yang ditampilkan dibawah ini.<br />
a. Di halaman Admin, klik tombol Logout di sudut kanan atas. Apa yang terjadi?<br />
b. Tutup browser dan kembali ke VWD.<br />
c. Daripada kembali ke halaman ketika Anda mengklik “Logout,” Anda lebih baik kembal<br />
ike halaman utama (Default.aspx). Untuk mengakhirinya, buka Site.master di Design<br />
view dan pilih kontrol <strong>Login</strong>Status.<br />
d. Set property LogoutAction kontrol <strong>Login</strong>Status menjadi “Redirect.”<br />
e. Set property LogoutPageUrl kontrol <strong>Login</strong>Status menjadi “~/Default.aspx.”<br />
f. Jalankan Default.aspx lagi dan arahkan ke Admin.aspx.<br />
g. Klik “Logout” dan pastikan Anda kembali ke Default.aspx. Juga pastikan kontrol<br />
<strong>Login</strong>Status terbaca “<strong>Login</strong>.”<br />
h. <strong>Login</strong> dan kembali ke Admin.aspx.<br />
i. Klik logo MyComics logo disudut kanan atas halaman. Pastikan Anda kembali ke<br />
Default.aspx dan kontrol <strong>Login</strong>Status terbaca “Logout” .<br />
j. Tutup browser browser dan kembali ke VWD.
Latihan 4<br />
Memastikan role-based security<br />
Pada Latihan ini, Anda akan mengaktifkan role manager ASP.NET dan konfigurasi untuk<br />
menggunakan SQL Server provider. Anda juga akan membuat sebuah account yang<br />
bernama Administrator dan sebuah group yang bernama Administrators. Lalu Anda akan<br />
memodifikasi setting keamanan sehingga hanya Administrators yang dapat melihat<br />
Admin.aspx.<br />
Tugas Langkah Detail<br />
1. Aktifkan<br />
ASP.NET role<br />
manager<br />
2. Membuat group<br />
Administrators<br />
3. Buat sebuah<br />
account<br />
Administrator<br />
4. Buat Admin.aspx<br />
dibatasi hanya<br />
untuk<br />
administrator<br />
a. Gunakan perintah “Website->ASP.NET Configuration” untuk menjalankan WebSite<br />
Administration Tool.<br />
b. Kembali ke halaman’ Security Web Site Administration Tool.<br />
c. Klik “Enable roles.”<br />
d. Buka Web.config. Dapatkan Anda melihat perubahan yang terjadi?<br />
e. Klik “Create or Manage roles” di halaman Security Web Site Administration Tool.<br />
f. Ketikan “Administrators” dan klik tombol “Add Role”.<br />
g. Klik tombol Back disudut kanan bawah halaman untuk kemabli ke halaman utama<br />
Security.<br />
a. Klik “Create user” pada halaman Security Web Site Administration Tool.<br />
b. Isi form seperti ditunjukkan dibawah ini. Pastikan untuk cek kotak Administrators<br />
box sehingga pengguna baru —Administrator—akan ditambahkan ke group<br />
Administrators. Gunakan password “P@ssw0rd”.<br />
c. Klik tombol “Create User”.<br />
d. Klik tombol Back untuk kembali ke halaman utama Security.<br />
a. Klik “Manage access rules” pada halaman Security Web Site Administration Tool.<br />
b. Pilih folder Secure seperti ditunjukkan dibawah ini. Lalu klik tombol Delete untuk<br />
menghapus aturan yang menolak pengguna yang tidakberhakuntuk mengakses folder<br />
Secure. Jawab Yes ketika konfirmasi muncul.
c. Klik “Add new access rule.”<br />
d. Isi di form Add New Access Rule sepertiyang ditunjukkan dibawah ini untuk<br />
menambahkan aturan yang mengizinkan administrator mengakses folder Secure.<br />
Pastikan Anda memilih folder Secure di tree view pada bagian kiri sebelum<br />
mengklik OK.<br />
e. Klik “Add new access rule” lagi.<br />
Diskusi dan pertanyaan lebih lanjut:<br />
f. Isi pada form Add New Access Rule form seperti gambar dibawah untuk<br />
menambahkan aturan yang menolak semua user mengakses folder Secure. Sekali<br />
lagi, Pastikan Anda memilih folder Secure di tree view pada bagian kiri sebelum<br />
mengklik OK..<br />
g. Buka file Web.config di folder Secure dan periksa element .<br />
Perubahan apa yang telah dibuat Web Site Administration Tool?<br />
h. Jalankan Default.aspx dan klik link Admin disudut kanan atas.<br />
i. <strong>Login</strong> menggunakan user name dan password yang telah telah diregister pada<br />
Latihan 3. Apa yang terjadi?<br />
j. Coba login lagi, tapi kali login sebagai Administrator. Pastikan halaman Admin.aspx<br />
muncul.<br />
1. Bagaimana jika ingin menggunakan database yang telah dimiliki saat ini, dan tidak<br />
menggunakan ASPNETDB yang dibuat oleh security wizard?<br />
2. Bagaimana cara memodifikasi text, tombol, dan tampilan halaman login?<br />
3. Bagaimana cara mengatur tingkat kerumitan password, misalnya minimal 5 karakter dan<br />
berisi satu simbol (@, #, atau $).<br />
4. Bagaimana cara membuat halaman registrasi yang juga berisi data pribadi pengguna, seperti<br />
nama, alamat, dan pekerjaan?<br />
5. Bagaimana membuat fasilitas untuk mereset password dan mengirimkannya ke email<br />
pengguna?<br />
Teknik dan tips untuk pertanyaan-pertanyan tersebut akan dibahas tuntas dalam buku:<br />
“Kumpulan Resep Pemrograman ASP.NET 2.0” yang akan segera terbit beberapa bulan<br />
mendatang ☺☺☺☺.
Profil Penulis:<br />
Bernad Pakpahan<br />
Lulusan Teknik Informatika Polyteknik Dell Sumatra Utara, saat ini bekerja sebagai developer di sebuah<br />
perusahaan retail Jakarta. Mendalami ASP.NET, C#, serta design pattern dan Object Oriented Programming.<br />
Pemegang sertifikasi MCTS dan MCPD untuk Visual Studio 2005 dan .Net Framework 2.0. Dapat dihubungi<br />
melalui email di bern4d@gmail.com.<br />
M. Choirul Amri<br />
Lulusan SMA Taruna Nusantara Magelang (1993) dan Teknik Industri STT Telkom Bandung (1998). Saat ini<br />
bekerja sebagai Consultant Trainer di Avantus Training Singapore. Mendapat penghargaan dari Microsoft<br />
sebagai Most Valuable Professional (MVP) untuk teknologi ASP.NET sejak tahun 2005.<br />
Memiliki minat besar di bidang Business Intelligence, Data Mining, Information Workflow, Enterprise<br />
Resources Planning, dan ASP.NET.<br />
Email: choirul@gmail.com<br />
URL: http://choirulamri.or.id<br />
Untuk diskusi lebih lanjut silakan gabung ke milis ASPNETExpress:<br />
Kirim email kosong ke aspnetexpress-subscribe@yahoogroups.com<br />
Atau daftar via web di http://tech.groups.yahoo.com/group/aspnetexpress/