Aracılığıyla paylaş


Visual Studio Projeleri içinde olmayan Kerberos kimlik doğrulaması belirtme

Bu özellik Microsoft SQL Server'ın ilerideki bir sürümünde kaldırılacaktır. Yeni geliştirme işlerinde bu özelliği kullanmaktan kaçının ve bu özelliği kullanmakta olan uygulamalarda değişiklik yapmayı planlayın.

Birlikte çalışma Visual Studio 2005, bazı kimlik doğrulaması mekanizmaları için ek adımlar gerektirir küme yükleneceği yerÖrneğin, hizmet asıl adı (spn) kayıt ve diğer ilgili adımları Kerberos kimlik doğrulaması gerektirir.Daha fazla bilgi için bkz: Http.sys kullanarak Kerberos hizmet asıl adlarını kaydetme.

Tümleşik kimlik doğrulaması kullanacak şekilde yapılandırılmış http bitiş noktaları, Kerberos ya da ntlm kimlik doğrulama şeması kullanan istemciler için yanıt verebilir.Seçili ve sunucu tarafından Kerberos veya ntlm, kullanılan gerçek düzeni hangisi istemci kimlik doğrulaması isteyen kullanımlar Düzen dayanır.Daha fazla bilgi için bkz: Son nokta kimlik doğrulama türleri.

Bu konuda nasıl değiştirileceği hakkında ayrıntılar sağlar bir Visual Studio 2005 Web Hizmetleri istemci uygulaması ile tümleşik kimlik doğrulaması, sunucu kimlik doğrulama türü olarak seçildiğinde Kerberos dışında başka bir kimlik doğrulama düzeni istemek böylece proje

Genellikle, ne zaman yazdığınız bir istemci uygulaması Visual Studio 2005, yapmanız gerekir küme de yerel xml Web Hizmetleri ile kullanmak için kimlik bilgileri bilgileri yukarı SQL Server uygulaması.Tümleşik kimlik doğrulaması kullanıyorsanız varsayarsak, aşağıdakine benzer kodunuzda kullanabilirsiniz:

myServer.sql_endpoint proxy = new myServer.sql_endpoint();
proxy.Credentials = System.Net.CredentialCache.DefaultCredentials;

Ancak, Kerberos kimlik doğrulaması doğru yapılmamış, küme kadar diğer bilgisayarlardan (spn kaydı vb.), çalışma Visual Studio 2005 bir http bitiş noktası üzerinde izin verilen kimlik doğrulama düzeni olarak açıkça Kerberos devre sürece her zaman Kerberos kimlik doğrulama düzeni olarak kullanmaya çalışır (sql_endpoint) ya da ntlm seçerekYa da BASIC, DIGEST kimlik doğrulama türü olarak.Belirtmek istediğiniz Visual Studio 2005 ntlm gibi desteklenen başka bir düzeni yerine kullanın.

Aşağıdaki kod kimlik doğrulaması nasıl kılabilirsiniz gösterir, Düzen Visual Studio 2005 kullanır ve istemci uygulama isteği olan ntlm kimlik doğrulama mekanizması olarak bunun yerine kullanılabilir:

mattm1.sql_endpoint proxy = new mattm1.sql_endpoint();
System.Net.CredentialCache myCreds = new System.Net.CredentialCache();

myCreds.Add(new Uri(proxy.Url), "NTLM", System.Net.CredentialCache.DefaultCredentials.GetCredential(new Uri(proxy.Url), "NTLM"));
proxy.Credentials = myCreds;

Rağmen zorla Visual Studio 2005 ntlm Kerberos yerine TÜMLEŞİK noktadaki önceki kod örneği kullanılması için PASAPORTLARI ile yapılandırılan bir bitiş noktası oluşturma önerilir ntlm ntlm Kerberos spn sorunları. nedeniyle kullanılamadığında kullanmanın yolu olarak =

Geliştirme ortamı için ek yapılandırma gereksinimleri

Değişiklikler önceki bölümünde belirtilen kodunuzu belirtin ve Kerberos dışında başka kimlik doğrulaması düzenini kullanabilmek için istemci uygulaması izin verir, ancak ek görevleri uygulamanızı çalıştıran ve geliştirme ortamında sınama desteklemek için gereklidir.

Not varsayılan olarak, add Web reference işlevleri Visual Studio her zaman, Kerberos, çalışır Web hizmet wsdl yanıt almak kullanırBunu önlemek için aşağıdaki geçici çözüm adımları yapabilirsiniz:

  1. Kerberos kimlik doğrulaması geliştirme ortamınız için doğru şekilde ayarlayın.Bu sizin için tek bir kullanıcı olarak Kerberos SPN kaydı içerir veya varsa, geliştiriciler etki alanı grubudur.Daha fazla bilgi için bkz: Http.sys kullanarak Kerberos hizmet asıl adlarını kaydetme.

  2. Kerberos, bu son noktadaki geçici olarak devre dışı.Aşağıdakileri kullanarak ALTER ENDPOINT yordam geçmek amacıyla DIGEST mod, doğru şekilde alabileceği wsdl yanıt.

    ALTER ENDPOINT endPointName
    AS HTTP (
       AUTHENTICATION = DIGEST
    )
    
  3. İçinde Web Başvurusu Ekle, Visual Studio 2005 projesi.

  4. Bitiş noktası başa dön geçiş INTEGRATED mod aşağıdaki gibi:

    ALTER ENDPOINT endPointName
    AS HTTP (
       AUTHENTICATION = INTEGRATED
    )
    

Alternatif olarak, aşağıdaki adımları izleyebilirsiniz:

  1. wsdl yanıt Internet Explorer kullanarak ve wsdl yanıt bir dosyaya kaydetme gibi başka bir mekanizma almak.

  2. Web başvurusunu Visual Studio'da dosya yerine bir url olarak gibi ekleyin: http://MyServer/sql_endpoint?wsdl.