Aracılığıyla paylaş


Özel sorun giderme: System.ServiceModel.Security.MessageSecurityException

A MessageSecurityException aykırı durumu oluşur ne zaman Windows Communication Foundation (WCF) bir ileti düzgün güvenli olmayan veya kurcalanmış belirler. Bu hata sık aşağıdaki koşulların tümü doğru olduğunda oluşur:

  • wcf hizmeti başvuru Uzak Masaüstü Bağlantısı veya Terminal Hizmetleri gibi uzak bir bağlantı üzerinden bir Web sitesi veya Web uygulaması projesi bir wcf Hizmeti (.svc) ile iletişim kurmak için kullanın.

  • Uzak sitede yönetici izinlerine sahip değilsiniz.

  • Uzak sitede localhost istekleri işlenir tarafından ASP.NET Development Server.

İlgili ipuçları

  • ASP.Net geliştirme sunucusu kullanırken, ntlm kimlik doğrulaması sorunlarını giderin.
    ASP.NET Development Server genellikle kapalı, anonim erişim sağlayan Windows NT Challenge/Response (ntlm) güvenlik vardır. Uzak bir bağlantısı veya Terminal Hizmetleri oturumunda çalıştırdığınızda varsayılan olarak ntlm Güvenlik etkinleştirilir. ntlm etkinleştirildiğinde, tüm ana makine istekleri başlatan işlem veya kullanıcı kimlik bilgileri karşı doğrulanır ASP.NET Development Server. Bu güvenlik açıklarından azaltır. Ancak, wcf ayrıca kendi kimlik doğrulamasını yapar ve wcf servisleri kullanmak bir yönetici olmayan hesabının izin vermez.

    Uzaktaki bir kullanıcı Web sitesini kullanarak çalıştırmak, ASP.NET Development Server hem de Web hizmeti veya wcf hizmeti ile birlikte, özel hizmet bağlama oluşturun veya ntlm Güvenlik devre dışı bırakmak.

    Güvenlik NotuGüvenlik Notu

     ntlm Güvenlik devre dışı bırakılması önerilmez ve bir güvenlik tehdidi oluşturan.

    Özel hizmet bağlama oluşturursanız, yine de ntlm kimlik doğrulaması tarafından korunur.

    wcf hizmeti için bir özel hizmet bağlama oluşturmak için aşağıdaki adımları kullanın.

    asp.net geliştirme sunucusu içinde barındırılan wcf hizmeti için bağlama özel bir hizmet oluşturmak için

    1. Özel durum üretiliyor wcf hizmeti için Web.config dosyasını açın.

    2. Web.config dosyasına aşağıdaki bilgileri girin.

      <bindings>
        <customBinding>
          <binding name="Service1Binding">
            <transactionFlow />
            <textMessageEncoding />
            <httpTransport authenticationScheme="Ntlm" />
          </binding>
        </customBinding>
      </bindings>
      
    3. Kaydedin ve Web.config dosyasını kapatın.

    4. wcf veya Web hizmeti için kod içinde bitiş noktası değeri aşağıdaki gibi değiştirin:

      <endpoint address="" binding="customBinding" bindingConfiguration="Service1Binding" contract="IService1" />
      

      Bu hizmetin özel bağlama kullanmasını sağlar.

    5. Hizmet erişen Web uygulaması hizmet için bir başvuru ekleyin. (De Hizmet Başvuru Ekle iletişim kutusunda, özel durum üretiliyor özgün hizmetiyle olduğu gibi hizmet için bir başvuru ekleyin.)

    wcf hizmeti başvurusu ile çalışırken ntlm Güvenlik devre dışı bırakmak için aşağıdaki adımları izleyebilirsiniz.

    Güvenlik NotuGüvenlik Notu

     ntlm Güvenlik devre dışı bırakılması önerilmez ve bir güvenlik tehdidi oluşturan.

    ntlm Güvenlik devre dışı bırakmak için

    1. İçinde Çözüm Gezgini, Web sitesinin adını sağ tıklatın ve sonra ' Özellik sayfaları.

    2. Seçin Başlat seçeneklerive sonra temizleyin ntlm kimlik doğrulaması onay kutusu.

    3. Tamam düğmesini tıklatın.

Ayrıca bkz.

Görevler

Nasıl yapılır: özel Yardımcısı'nı kullan

Başvuru

MessageSecurityException