Ich habe zwei Websites auf demselben IIS-Server gehostet. SiteA enthält WCF-Dienste, auf die SiteB zugreifen muss, sowie alles, was in der Domäne authentifiziert wird.Konfigurieren der WCF-Sicherheit (wsHttpBinding)
Der Dienst ist mit einem wsHttpBinding konfiguriert und daher glaube ich, verwendet Windows-Sicherheit standardmäßig. Im Moment kann ich die Dienste von einer Konsolenanwendung aufrufen, die auf meinem lokalen Computer läuft, sowie von einer Webanwendung, die auf dem Standard-Web-Server von Visual Studio ausgeführt wird. Daher nehme ich an, dass die Authentifizierung funktioniert. Wenn SiteB versucht, auf die Dienste zuzugreifen, schlägt es mit diesem Fehler fehl: Der Aufrufer wurde von dem Dienst nicht authentifiziert.
SiteB läuft auf demselben Rechner wie SiteA, daher verstehe ich nicht, warum es nicht authentifiziert werden konnte. SiteB verwendet die Formularauthentifizierung und ich habe den anonymen Zugriff auf einen Domänenbenutzer zugeordnet.
Hier sind die Config-Bits:
WebsiteA (Service):
<system.serviceModel>
<serviceHostingEnvironment aspNetCompatibilityEnabled="true" multipleSiteBindingsEnabled="true" />
<services>
<service behaviorConfiguration="wcfServiceBehaviour" name="MyService">
<endpoint address="" binding="wsHttpBinding" contract="IServiceContract" />
<endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
</service>
</services>
<behaviors>
<serviceBehaviors>
<behavior name="wcfServiceBehaviour">
<serviceMetadata httpGetEnabled="true" />
<serviceDebug includeExceptionDetailInFaults="true" />
</behavior>
</serviceBehaviors>
</behaviors>
</system.serviceModel>
SiteB (Client):
<system.serviceModel>
<client>
<endpoint address="http://xxxxx/Services/xxService.svc"
binding="wsHttpBinding"
contract="IServiceContract" />
</client>
</system.serviceModel>
Hallo Xavier, ich entschuldige mich, ich war falsch. Ich hatte dieses Teil deutlich vermisst. – Aliostad