2009-06-22 16 views
50

.Net'te bir Web Hizmeti oluşturdum ve bu nedenle hizmet dosyasının adresinin, nasıl çalıştığına dair otomatik olarak oluşturulmuş bir açıklaması var. Sayfayı, üzerinde barındırdığı makineden çalıştırdığımda, test değerlerini servise göndermek için kullanabileceğim bir form bile var. Ancak uzak makinelerde formu gizler ve yukarıda görüldüğü gibi mesaj verir."Test formu yalnızca yerel makineden gelen istekler için kullanılabilir."

Bunun bir anlamı var mı? Başka sitelerin bunu "daha güvenli" olarak adlandırdığını gördüm, ancak herkes bana kendi formlarını oluşturabilir ve bunu bana sorarsanız bir sorundan daha fazlasını yapamaz.

+2

Eğer bir sorum var mı? Ayrıca, kullandığınız .NET sürümünü veya ASMX hizmetlerini veya WCF'yi kullanıp kullanmadığınızı da söylemek isteyebilirsiniz. –

+0

WebService'i nasıl arayabilirim? ServerSide üzerinde herhangi bir değişiklik olduğunda olayı çalıştırmam gerekiyor. Programı sunucu ana sayfasına koymalı mıyım? –

cevap

3

Meta veri yayınlıyorsanız ve genel/güvenli olmayan bir web hizmeti kullanıyorsanız, haklısınız, herkesin basit bir istemciyi web hizmetinizde kesmek için oluşturması yeterince kolay olacaktır. Bu durumda, sadece yerel makinede üretilen web istemcisinin bir sıkıntı gibi görünmesi.

Hizmetiniz özel ve güvenli ise, büyük bir güvenlik açığı olur, sunucu adı ve hizmeti veren herkese veriye erişmek ve her türlü zararı gerçekleştirmek için kimliği doğrulanmış bir istemciye hizmet vermek.

ASMX Web hizmetleri için kullanıcı arabirimi oluşturma ilkesini, yalnızca sunucuda, yanlışlıkla güvenlik açıklarını ortadan kaldırırken güzel bir takım oluşturma girişiminde bulunduğunu hayal ediyorum. WCF bununla birlikte her şeyi yaptı, yalnızca meta veriler yayınlanırsa istemciler oluşturabilir ve hizmetlere erişmek için doğru güvenliği uygulamaları gerekir.

+0

Peki nasıl çalışırım? – Si8

+2

Aşağıdaki cevap (120+ upvotes ile bir) nasıl çalıştığını anlatıyor - iyi şanslar! –

+0

Bu soruyu şu soruları sordum: http://stackoverflow.com/questions/41752213/why-is-asmx-giving-an-error-with-pulling-data-from-client-script. Lütfen yardım edebilir misin? – Si8

138

Bu düğümleri içerecek şekilde web.config değiştirerek bu soruna geçici bir çözüm olabilir: Bu, tarayıcı üzerinden .Asmx web hizmeti ziyaret sağlayacak

<configuration> 
    <system.web> 
    <webServices> 
     <protocols> 
      <add name="HttpGet"/> 
      <add name="HttpPost"/> 
     </protocols> 
    </webServices> 
    </system.web> 
</configuration> 

. Ardından, web hizmetlerini doğrudan tarayıcınızda çağırabilir, bağımsız değişkenleri iletebilir ve sonuçları görüntüleyebilirsiniz.

+8

+1 Uygulamam güvenli bir ortamda ve QA için bu tamamen gerekli. Teşekkürler. – BryanGrimes

+7

+1 benim sorunumu çözdü .. çok yardımsever :) –

+0

Bana da yardımcı oluyor, ancak bağlantı noktası belirtilen sayfada bana yönlendirir gibi başka bir sorun var. Bağlantı noktasını adres dizesinden nasıl kaldırabilirim. –

14

Sadece FYI .NET 4.0 kullanıyorum ve aynı sorunu yaşadım. Kullandığım Ancak

... bu aynı bölgelerde

<add name="HttpSoap12"/> 
<add name="HttpSoap"/> 
<add name="HttpGet"/> 
<add name="HttpPost"/> 

ve işe yaradı. Ancak sadece HttpGet ve HttpPost ile değil.

İlgili konular