Aracılığıyla paylaş


Nasıl yapılır: Çevrimiçi bir ClickOnce Uygulamasında Sorgu Dize Bilgilerini Alma

Sorgu dizesiname=value formunda rastgele bilgileri içeren ve soru işareti (?) ile başlayan bir URL bölümüdür.servername üzerinde tuttuğunuz WindowsApp1 olarak adlandırılan bir ClickOnce uygulamasına sahip olduğunuzu ve uygulama başladığında username değişkeni için bir değer geçirmek istediğinizi varsayalım.URL'niz aşağıdaki gibi görünebilir:

https://servername/WindowsApp1.application?username=joeuser

Aşağıdaki iki yordam sorgu dizesi bilgisi edinmek için bir ClickOnce uygulamasının nasıl kullanılacağını gösterir.

[!NOT]

Uygulamanız dosya paylaşımı veya yerel dosya sistemi kullanmak yerine, HTTP kullanarak başlatıldığında yalnızca bir sorgu dizesi içinde bilgi geçirebilirsiniz.

İlk yordam ClickOnce uygulaması açıldığında bu değerleri okumak için küçük bir kod parçasını nasıl kullanabileceğinizi gösterir.

Sonraki yordam ClickOnce uygulamanızın MageUI.exe kullanarak sorgu dizesi parametrelerini kabul etmesi için nasıl yapılandırabileceğini gösterir.Uygulamanızı her yayımlamak istediğinizde bunu yapmanız gerekecek.

[!NOT]

Bu özelliği etkinleştirmek üzere bir karar almadan önce bu konuda 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 almak için, bkz. İzlenecek yol: ClickOnce Uygulamasını El ile Dağıtma

[!NOT]

Başlangıç.net Framework 3.5 SP1, komut satırı bağımsız değişkeni bir çevrimdışı geçmesi mümkün ClickOnce uygulama.Bağımsız uygulama sağlamak isterseniz, kısayol dosyasına parametre iletebilirsiniz.appref-ms uzantısı.

ClickOnce uygulamasından sorgu dizesi bilgileri edinmek için

  1. Aşağıdaki kodu projenize koyun.Bu kodun çalışması için, System.Web'e bir referansınız olmalıdır ve using veya Imports ifadelerini System.Web, System.Collections.Specialized ile System.Deployment.Application için eklemelisiniz.

    Private Function GetQueryStringParameters() As NameValueCollection
        Dim NameValueTable As New NameValueCollection()
    
        If (ApplicationDeployment.IsNetworkDeployed) Then 
            Dim QueryString As String = ApplicationDeployment.CurrentDeployment.ActivationUri.Query
            NameValueTable = HttpUtility.ParseQueryString(QueryString)
        End If
    
        GetQueryStringParameters = NameValueTable
    End Function
    
    private NameValueCollection GetQueryStringParameters()
    {
        NameValueCollection nameValueTable = new NameValueCollection();
    
        if (ApplicationDeployment.IsNetworkDeployed)
        {
            string queryString = ApplicationDeployment.CurrentDeployment.ActivationUri.Query;
            nameValueTable = HttpUtility.ParseQueryString(queryString);
        }
    
        return (nameValueTable);
    }
    
  2. Ada göre sıralanan sorgu dizisi parametrelerine ait bir Dictionary almak için önceden tanımlanmış işlevi çağırın.

ClickOnce uygulamasına MageUI.exe ile geçen sorgu dizesini etkinleştirmek için

  1. .NET Command Prompt'ı açın ve yazın:

    MageUI
    
  2. Dosya menüsünden, 'ı seçin ve uygulamanıza ait .application uzantılı dosya olan ClickOnce dağıtım bildirimini açın.

  3. Sol gezinti penceresinde Dağıtım Seçenekleri panosunu seçin ve Allow URL parameters to be passed to application onay kutusunu seçin.

  4. Dosya menüsünden Kaydet’i tıklayın.

[!NOT]

Alternatif olarak, Visual Studio içinde sorgu dizesi geçirmeyi etkinleştirebilirsiniz.Proje Seçenekleri'ni açın, Yayımla sekmesini seçin, Seçenekler düğmesine tıklayın ve Bildirimler'i, seçin. Burda bulunan Allow URL parameters to be passed to application onay kutusunu seçin.

Güçlü Programlama

Sorgu dizesi parametrelerini kullandığınızda, uygulamanızın nasıl yüklendiğine ve etkinleştirildiğine dikkat etmelisiniz.Uygulamanız kullanıcı bilgisayara Web'den veya ağ paylaşımından yüklemek için yapılandırılmışsa, kullanıcının uygulamayı yalnızca bir kez URL yoluyla etkinleştirmesi olasıdır.Bundan sonra kullanıcı genellikle Başlat menüsünde kısayol kullanarak uygulamanızı etkinleştirecektir.Sonuç olarak, uygulamanızın tüm kullanım süresinde yalnızca bir kez sorgu dizesi değişkenleri alması sağlanır.İleride kullanmak üzere bu bağımsız değişkenleri kullanıcının makinesinde depolamayı seçerseniz, bunları güvenli bir şekilde depolama sorumluluğunuz vardır .

Uygulamanız yalnızca çevrimiçi ise, her zaman bir URL yolu etkinleştirilecektir.Ancak bu durumda bile, sorgu dizesi parametreleri eksik veya bozuksa doğru çalışması için uygulamanız yazılmalıdır.

Güvenlik

ClickOnce uygulamanıza URL parametreleri geçirilmesine sadece kullanmadan önce kötü amaçlı karakter girişlerini temizlemeyi planlıyorsanız izin verin.Örneğin, alıntı işareti, eğik çizgi veya noktalı virgül içeren bir dize, bir veritabanına karşılık gelen SQL isteği içinde filtrelenmeden kullanılırsa planlı olmayan veri işlemleri gerçekleşebilir.Daha fazla bilgi için, bkz. Script Exploits Overview.

Ayrıca bkz.

Kavramlar

ClickOnce Uygulamalarının Güvenliğini Sağlama