11.12.2012 Views

Pengaturan Keamanan dengan Login Control

Pengaturan Keamanan dengan Login Control

Pengaturan Keamanan dengan Login Control

SHOW MORE
SHOW LESS

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 />

&nbsp;<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/

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!