Çevrimiçi bir ClickOnce uygulamasında sorgu dize bilgilerini alma
Sorgu dizesi, ad=değer biçiminde rastgele bilgiler içeren bir soru işareti (?) ile başlayan URL'nin bölümüdür. üzerinde servername
barındırdığınız adlı WindowsApp1
bir ClickOnce uygulamanız olduğunu ve uygulama başlatıldığında değişkeni username
için bir değer geçirmek istediğinizi varsayalım. URL'niz aşağıdaki gibi görünebilir:
http://servername/WindowsApp1.application?username=joeuser
Aşağıdaki iki yordamda sorgu dizesi bilgilerini almak için ClickOnce uygulamasının nasıl kullanılacağı gösterilmektedir.
Not
Sorgu dizesindeki bilgileri, dosya paylaşımı veya yerel dosya sistemi kullanmak yerine yalnızca uygulamanız HTTP kullanılarak başlatılırken geçirebilirsiniz.
İlk yordamda ClickOnce uygulamanızın uygulama başlatıldığında bu değerleri okumak için küçük bir kod parçasını nasıl kullanabileceği gösterilir.
Sonraki yordamda, sorgu dizesi parametrelerini kabul edebilmesi için MageUI.exe kullanarak ClickOnce uygulamanızı yapılandırma işlemi gösterilmektedir. Uygulamanızı her yayımladığınızda bunu yapmanız gerekir.
Not
Bu özelliği etkinleştirmeye karar vermeden önce bu konunun devamında yer alan "Güvenlik" bölümüne bakın.
Mage.exe veya MageUI.exe kullanarak ClickOnce dağıtımı oluşturma hakkında bilgi için bkz. İzlenecek yol: ClickOnce uygulamasını el ile dağıtma.
Not
.NET Framework 3.5 SP1'den başlayarak, komut satırı bağımsız değişkenlerini çevrimdışı bir ClickOnce uygulamasına geçirmek mümkündür. Uygulamaya bağımsız değişkenler sağlamak istiyorsanız, ile kısayol dosyasına parametreleri geçirebilirsiniz. APPREF-MS uzantısı.
ClickOnce uygulamasından sorgu dizesi bilgilerini almak için
Aşağıdaki kodu projenize yerleştirin. Bu kodun çalışması için System.Web'e bir başvurunuz olması ve System.Web, System.Collections.Specialized ve System.Deployment.Application için veya
Imports
yönergeleri eklemenizusing
gerekir.Not
ApplicationDeployment Ad alanı içindeki System.Deployment.Application sınıf ve API'ler .NET Core ve .NET 5 ve sonraki sürümlerde desteklenmez. .NET 7'de, uygulama dağıtım özelliklerine erişmek için yeni bir yöntem desteklenir. Daha fazla bilgi için bkz . .NET'te ClickOnce dağıtım özelliklerine erişme. .NET 7, ApplicationDeployment yöntemlerinin eşdeğerini desteklemez.
private NameValueCollection GetQueryStringParameters() { NameValueCollection nameValueTable = new NameValueCollection(); if (ApplicationDeployment.IsNetworkDeployed) { string queryString = ApplicationDeployment.CurrentDeployment.ActivationUri.Query; nameValueTable = HttpUtility.ParseQueryString(queryString); } return (nameValueTable); }
Daha önce tanımlanan işlevi çağırarak ada göre dizine alınmış sorgu dizesi parametrelerinden birini Dictionary alın.
MageUI.exe ile bir ClickOnce uygulamasında sorgu dizesi geçirmeyi etkinleştirmek için
.NET Komut İstemi'ni açın ve şunu yazın:
MageUI
Dosya menüsünde Aç'ı seçin ve uzantıyla biten dosya olan ClickOnce uygulamanızın dağıtım bildirimini
.application
açın.Sol gezinti penceresinde Dağıtım Seçenekleri panelini seçin ve URL parametrelerinin uygulamaya geçirilmesine izin ver onay kutusunu seçin.
Dosya menüsünde Kaydet'i seçin.
Not
Alternatif olarak, Visual Studio'da sorgu dizesi geçirmeyi etkinleştirebilirsiniz. Url parametrelerinin uygulamaya geçirilmesine izin ver onay kutusunu seçin. Bu onay kutusunu bulmak için Proje Özellikleri'ni açın, Yayımla sekmesini seçin, Seçenekler düğmesine tıklayın ve bildirimler'i seçin.
Not
.NET Core 3.1 ve .NET 5 veya üzeri için ClickOnce'da, Yayımlama sihirbazı ve Project Tasarım Aracı Yayımla sayfası yerine Yayımla aracını kullanarak dağıtım özelliklerini ayarlarsınız. Daha fazla bilgi için bkz. .NET için ClickOnce ve ClickOnce kullanarak bir .NET Windows uygulaması dağıtma.
Sağlam programlama
Sorgu dizesi parametrelerini kullandığınızda, uygulamanızın nasıl yüklendiğine ve etkinleştirildiğine dikkat etmeniz gerekir. Uygulamanız kullanıcının bilgisayarına Web'den veya bir ağ paylaşımından yüklenecek şekilde yapılandırılmışsa, kullanıcının uygulamayı URL üzerinden yalnızca bir kez etkinleştirmesi olasıdır. Bundan sonra, kullanıcı genellikle Başlat menüsündeki kısayolu kullanarak uygulamanızı etkinleştirir. Sonuç olarak, uygulamanızın sorgu dizesi bağımsız değişkenlerini ömrü boyunca yalnızca bir kez alması garanti edilir. Bu bağımsız değişkenleri gelecekte kullanmak üzere kullanıcının makinesinde depolamayı seçerseniz, bunları güvenli ve güvenli bir şekilde depolamak sizin sorumluluğundadır.
Uygulamanız yalnızca çevrimiçiyse, her zaman bir URL aracılığıyla etkinleştirilir. Ancak bu durumda bile sorgu dizesi parametreleri eksik veya bozuksa uygulamanızın düzgün çalışması için yazılması gerekir.
.NET Framework güvenliği
ClickOnce uygulamanıza URL parametrelerinin geçirilmesine izin vermek için, bunu kullanmadan önce kötü amaçlı karakterlerin girişini temizlemeyi planlıyorsanız izin verin. Örneğin tırnak işaretleri, eğik çizgiler veya noktalı virgüllerle eklenmiş bir dize, sql sorgusunda veritabanına karşı filtrelenmemiş olarak kullanıldığında rastgele veri işlemleri gerçekleştirebilir. Sorgu dizesi güvenliği hakkında daha fazla bilgi için bkz . Betik açıklarına genel bakış.
İlgili içerik
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin