2009-03-04 42 views
0

Çok basit bir WCF hizmeti (IIS'de barındırılan) ve bunu yapan web uygulamasını yazdım. Her ikisi de aynı etki alanında iseler, iyi çalışır. Ancak onları farklı etki alanlarına (bir güvenlik duvarının farklı taraflarında) yerleştirdiğimde, web uygulamaları şu şekilde diyor:WCF ve Güvenlik Duvarı

Kimlik doğrulama başarısız olduğundan güvenlik belirteci isteği karşılanamadı. Açıklama: Geçerli web isteğinin yürütülmesi sırasında işlenmeyen bir özel durum oluştu. Hata hakkında ve kodda nereden kaynaklandığı hakkında daha fazla bilgi için yığın izlemesini gözden geçirin. Özel Durum Ayrıntıları: System.ServiceModel.FaultException: Kimlik doğrulama başarısız olduğu için güvenlik belirteci isteği karşılanamadı. Kaynak Hata: Geçerli web isteğinin yürütülmesi sırasında işlenmeyen bir özel durum oluşturuldu. İstisna durumunun kaynağı ve konumu ile ilgili bilgiler aşağıdaki istisna yığını izlemesi kullanılarak tanımlanabilir.

hizmet web.config revelant parçasıdır:

<system.serviceModel> 
<services> 
    <service behaviorConfiguration="MigrationHelperBehavior" 
    name="MigrationHelper"> 
    <endpoint address="" binding="wsHttpBinding" contract="IMigrationHelper"> 
     <identity> 
     <dns value="localhost" /> 
     </identity> 
    </endpoint> 
    <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />  <endpoint binding="httpBinding" contract="IMigrationHelper" />  </service> 
</services> 
<behaviors> 
    <serviceBehaviors> 
    <behavior name="MigrationHelperBehavior"> 
     <!-- To avoid disclosing metadata information, set the value below to false and remove the metadata endpoint above before deployment --> 
     <serviceMetadata httpGetEnabled="true"/> 
     <!-- To receive exception details in faults for debugging purposes, set the value below to true. Set to false before deployment to avoid disclosing exception information --> 
     <serviceDebug includeExceptionDetailInFaults="false"/> 
    </behavior> 
    </serviceBehaviors> 
</behaviors> 
</system.serviceModel> 

web appliation (istemci) web.config diyor ki:

ben hem iman
<system.serviceModel> 
<bindings> 
<wsHttpBinding> 
<binding name="WSHttpBinding_IMigrationHelper" closeTimeout="00:01:00" openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00" bypassProxyOnLocal="false" transactionFlow="false" hostNameComparisonMode="StrongWildcard" maxBufferPoolSize="524288" maxReceivedMessageSize="65536" messageEncoding="Text" textEncoding="utf-8" useDefaultWebProxy="true" allowCookies="false"> 
    <readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384" maxBytesPerRead="4096" maxNameTableCharCount="16384"/> 
    <reliableSession ordered="true" inactivityTimeout="00:10:00" enabled="false"/> 
    <security mode="Message"> 
     <transport clientCredentialType="Windows" proxyCredentialType="None" realm=""/> 
     <message clientCredentialType="Windows" negotiateServiceCredential="true" algorithmSuite="Default" establishSecurityContext="true"/> 
    </security> 
</binding> 
</wsHttpBinding> 
</bindings> 
<client> 
<endpoint address="http://mydomain.com/MigrationHelper.svc" binding="wsHttpBinding" bindingConfiguration="WSHttpBinding_IMigrationHelper" contract="MyNewServiceReference.IMigrationHelper" name="WSHttpBinding_IMigrationHelper"> 
<identity> 
    <dns value="localhost"/> 
</identity> 
</endpoint> 
</client> 
</system.serviceModel> 

bunlar sadece varsayılan olduklarını VS 2008 benim için yarattı.

Bu yüzden sorum, hizmet ve istemciyi aynı etki alanında olmadığında nasıl yapılandırıyor?

Teşekkür .Jim Biddison

cevap

0

WCF izleme nasıl kurulacağı için my question yanıtı bakın. Hizmetin web uygulaması için güvenlik nasıl yapılandırılır?

1

Internet etki alanı durumunda, kullanıcı kimlik bilgileri normalde farklı olan Windows kimlik doğrulamasını kullanmak istiyor/kullanıyorsunuz. Güvenlik duvarı sorunu yok gibi görünüyor.

Varsayılan Windows kimlik doğrulamasını çözmek için sertifikayı kullanın veya hiçbir şey kullanmayın.

İlgili konular