Mengambil informasi string kueri dalam aplikasi ClickOnce online
String kueri adalah bagian dari URL yang dimulai dengan tanda tanya (?) yang berisi informasi arbitrer dalam formulir name=value. Misalkan Anda memiliki aplikasi ClickOnce bernama WindowsApp1
yang Anda host di servername
, dan Anda ingin meneruskan nilai untuk variabel username
saat aplikasi diluncurkan. URL Anda mungkin terlihat seperti berikut:
http://servername/WindowsApp1.application?username=joeuser
Dua prosedur berikut menunjukkan cara menggunakan aplikasi ClickOnce untuk mendapatkan informasi string kueri.
Catatan
Anda hanya dapat meneruskan informasi dalam string kueri saat aplikasi Anda diluncurkan menggunakan HTTP, alih-alih menggunakan berbagi file atau sistem file lokal.
Prosedur pertama menunjukkan bagaimana aplikasi ClickOnce Anda dapat menggunakan sepotong kecil kode untuk membaca nilai-nilai ini saat aplikasi diluncurkan.
Prosedur berikutnya menunjukkan cara mengonfigurasi aplikasi ClickOnce Anda menggunakan MageUI.exe sehingga dapat menerima parameter string kueri. Anda harus melakukan ini setiap kali Anda menerbitkan aplikasi Anda.
Catatan
Lihat bagian "Keamanan" nanti dalam topik ini sebelum Anda membuat keputusan untuk mengaktifkan fitur ini.
Untuk informasi tentang cara membuat penyebaran ClickOnce menggunakan Mage.exe atau MageUI.exe, lihat Panduan: Menyebarkan aplikasi ClickOnce secara manual.
Catatan
Mulai dari .NET Framework 3.5 SP1, dimungkinkan untuk meneruskan argumen baris perintah ke aplikasi ClickOnce offline. Jika Anda ingin memberikan argumen ke aplikasi, Anda dapat meneruskan parameter ke file pintasan dengan . Ekstensi APPREF-MS.
Untuk mendapatkan informasi string kueri dari aplikasi ClickOnce
Tempatkan kode berikut di proyek Anda. Agar kode ini berfungsi, Anda harus memiliki referensi ke System.Web dan menambahkan
using
atauImports
direktif untuk System.Web, System.Collections.Specialized, dan System.Deployment.Application.Catatan
Kelas ApplicationDeployment dan API di System.Deployment.Application namespace tidak didukung dalam .NET Core dan .NET 5 dan versi yang lebih baru. Di .NET 7, metode baru untuk mengakses properti penyebaran aplikasi didukung. Untuk informasi selengkapnya, lihat Properti penyebaran Access ClickOnce di .NET. .NET 7 tidak mendukung metode ApplicationDeployment yang setara.
private NameValueCollection GetQueryStringParameters() { NameValueCollection nameValueTable = new NameValueCollection(); if (ApplicationDeployment.IsNetworkDeployed) { string queryString = ApplicationDeployment.CurrentDeployment.ActivationUri.Query; nameValueTable = HttpUtility.ParseQueryString(queryString); } return (nameValueTable); }
Panggil fungsi yang ditentukan sebelumnya untuk mengambil Dictionary parameter string kueri, yang diindeks berdasarkan nama.
Untuk mengaktifkan string kueri yang melewati aplikasi ClickOnce dengan MageUI.exe
Buka Prompt Perintah .NET dan ketik:
MageUI
Dari menu File, pilih Buka, dan buka manifes penyebaran untuk aplikasi ClickOnce Anda, yang merupakan file yang berakhiran
.application
ekstensi.Pilih panel Opsi Penyebaran di jendela navigasi sebelah kiri, dan pilih kotak centang Izinkan parameter URL untuk diteruskan ke aplikasi .
Dari menu File , pilih Simpan.
Catatan
Secara bergantian, Anda dapat mengaktifkan string kueri yang melewati di Visual Studio. Pilih kotak centang Izinkan parameter URL untuk diteruskan ke aplikasi , yang dapat ditemukan dengan membuka Properti Proyek, memilih tab Terbitkan , mengklik tombol Opsi , lalu memilih Manifes.
Catatan
Di ClickOnce untuk .NET Core 3.1 dan .NET 5 atau yang lebih baru, Anda mengatur properti penyebaran menggunakan alat Terbitkan alih-alih panduan Terbitkan dan halaman Terbitkan Desainer Proyek. Untuk informasi selengkapnya, lihat Menyebarkan aplikasi .NET Windows menggunakan ClickOnce dan ClickOnce untuk .NET.
Pemrograman yang kuat
Saat menggunakan parameter string kueri, Anda harus memberikan pertimbangan yang cermat tentang cara aplikasi Anda diinstal dan diaktifkan. Jika aplikasi Anda dikonfigurasi untuk menginstal di komputer pengguna dari Web atau dari berbagi jaringan, kemungkinan pengguna akan mengaktifkan aplikasi hanya sekali melalui URL. Setelah itu, pengguna biasanya akan mengaktifkan aplikasi Anda menggunakan pintasan di menu Mulai . Akibatnya, aplikasi Anda dijamin akan menerima argumen string kueri hanya sekali selama masa pakainya. Jika Anda memilih untuk menyimpan argumen ini di komputer pengguna untuk digunakan di masa mendatang, Anda bertanggung jawab untuk menyimpannya dengan cara yang aman dan aman.
Jika aplikasi Anda hanya online, aplikasi tersebut akan selalu diaktifkan melalui URL. Meskipun demikian, dalam hal ini, aplikasi Anda harus ditulis agar berfungsi dengan baik jika parameter string kueri hilang atau rusak.
.NET Framework Security
Izinkan meneruskan parameter URL ke aplikasi ClickOnce Anda hanya jika Anda berencana untuk membersihkan input karakter berbahaya sebelum menggunakannya. String yang disematkan dengan tanda kutip, garis miring, atau titik koma, misalnya, mungkin melakukan operasi data arbitrer jika digunakan tanpa filter dalam kueri SQL terhadap database. Untuk informasi selengkapnya tentang keamanan string kueri, lihat Gambaran umum eksploitasi Skrip.
Konten terkait
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk