2009-03-07 20 views
1

Kendi Çalışma Grubunda bulunan bir sunucuda bir WCF hizmeti ayarladım. Kurumsal etki alanında yaşayan bir istemciden bir TCP/IP bağlantısı kurmaya çalıştım. Bir bağlantı açmaya çalıştığımda, iletiyi içeren bir SecurityNegotiationException olsun: ". kimlik doğrulama sırasında yerine getirilmemiş bir uzaktan yan güvenlik gereksinimi ProtectionLevel ve/veya ImpersonationLevel artırmayı deneyin"Sorun Bir Sunucuda WCF Hizmetine Bağlanma

İç istisna okur: konularla ilgili bazı arkadaşlarıyla konuşma ve bazı google araştırmadan sonra

"ağ oturum açma başarısız" Ben sorun, istemci oturum çalışıyor olması sonucuna vardı şirket ağ giriş ve şifremi kullanarak sunucuya. Sunucu, şirket ağının bir parçası olmadığı için, şirket kimliğimi bilmez ve giriş/bağlantı girişimini reddeder. Bu analizin doğru olup olmadığı hakkında hiçbir fikrim yok.

Google sonuçları, belki de çözümün, sunucu makinesinde bulunan kullanıcı hesabının kimliğine bürünmem gerektiğidir. - Ayrıca, kullanıcı kimliğine bürünme özelliğini gösteren bu kod makalesinde de rastladım. Sunucudaki tek hesap şifre içermeyen bir yönetici olduğundan, bilgisayarın ip adresi "10.0.0.11", kullanıcı adı "Yönetici" ve şifreyi "" olarak denedim.

"Oturum açma hatası: Bilinmeyen kullanıcı adı veya hatalı parola"

sorunun başka ipucu: http://www.codeproject.com/KB/dotnet/UserImpersonationInNET.aspx?display=Print Ne yazık ki, iletiyle başarısız istemci ve sunucu üzerinde her iki makine olduğunda Kurumsal ağ, hiç bir bağlantı sorunu yoktur.

Hatayı nasıl çözebilirim ve bağlantıyı sunucuya nasıl tamamlayabilirim? En iyi uygulama olmasa bile, herhangi bir güvenliği kaldırmamaya tamamen izin veriyorum, böylece bu projeyi ileriye taşıyabileyim diye bu projeyi devam ettirebilirim

+0

Sorunuz neydi? –

cevap

2

Ayrıntıları kavrayıncaya kadar, öğrenmenin en iyi yolu güvenliği devre dışı bırakmaktır. Sunucu tarafında güvenlik modu "Yok" olarak ayarlanmış yeni bir ciltleme yapılandırması oluşturmanız gerekir. Rahatlık için "NoSecurity" olarak adlandırın. Bu yapılandırma, son noktasında kullandığınız türden (wsHttpBinding, vb.) Olmalıdır. Ardından, uç noktanızın bindingConfiguration özelliğini "NoSecurity" olarak ayarlayın.

İstemci yapılandırmanızı güncelleyin ve siz gitmek için hazırsınız.

+0

MSDN forum sorusunu kullandım: "WCF güvenliğini nasıl devre dışı bırakırım" http://social.msdn.microsoft.com/Forums/en-US/wcf/thread/271b1816-173c-4c76-a4c4-fd9fda4b5e91/ Not aşağıdaki: "Binding1" örneğinde "MyService" hizmeti tarafından başvurulan. – MedicineMan

1

Bir çalışma grubunun bir etki alanına sahip olmasının bir yolu olmadığının farkındayım, yani bir çiftiniz var demektir seçimler, ben

  1. HTTP (web servis uç noktası) kullanan WCF hizmetinde başka uç noktasını ekleyin ve etki alanından bu kullanmak gördüğünüz gibi. Bu, güvenlik sorununu ortadan kaldırır, çünkü burada taklit edilebilir, hatta çalışma grubu sunucunuzdaki güzelliklere erişebilen belirli bir kullanıcı kurabilirsiniz. WCF hizmetinde güvenliği azaltma. Bunun nasıl yapılacağını düşünmek zorundayım, ama yine de iyi bir fikir değil.

  2. Etki alanı oluşturun ve güven ilişkisi kurun.

size bile bu kodu vurabilir önce kimlik doğrulama gerçekleşir gerçekleşmez, WCF doğrudan yararlı bir şekilde kimliğe bürünme ile ilgili değildir belirtilen kod projesi. Bunu yapmak için çerçeve bitlerine vurabileceğinizi hayal ediyorum ama bu kötü olurdu. Kodu bir HTTP bitiş noktasında kullanmanın bir yolu olabilir, ancak bu zaten windows güvenliğini saran kod ekleme ek yükü olmadan yapılabilir.

+0

Ya da kimlik doğrulaması gerçekleştirmek için çalışma grubundan etki alanındaki WCF hizmetine bir sertifika verilebilir? –

+0

Bazı gerçekten mükemmel öneriler. Güvenliği bozma/devre dışı bırakma konusunda iyiyim; Bu tamamen dahili bir ağ ve en iyi uygulama olmasa da, bu parkın en kısa sürede çalışmasını istiyorum. Güvenliği gerçekleştirmeyi nasıl engelleyebilirim ki bunu başarabilir miyim? – MedicineMan

İlgili konular