Frage

Ich habe einen WCF-Dienste. Welche zwei Methoden hat, sagen wir Erhalten und Speichern. Ich möchte nur die Get-Methode an den Dritten belichten, die den Dienst raubend werden, während meine Anwendung fähig sein sollte sowohl Erhalten und Speichern zu konsumieren.

Gibt es eine Möglichkeit, ein Verfahren nicht in Operation zu konsumieren? Ich denke den Host-Namen des Antrags der Überprüfung und der Zugriff gewährt wird, nur wenn es der Hostname meiner Anwendung ist.

War es hilfreich?

Lösung

Warum eine zweite ServiceContract nicht schaffen, die sowohl Get und Set als OperationContracts hat? Dann könnten Sie sperren, die zu diesem zweiten Vertrag erhalten kann.

[ServiceContract]
public interface IFoo
{
    [OperationContract]
    void Get();
}

[ServiceContract]
public interface IFooInternal : IFoo
{
    [OperationContract]
    void Set();
}

Andere Tipps

Hier ist der Code die Host-IP-Adresse zu identifizieren:

string GetAddressAsString()
{
           RemoteEndpointMessageProperty clientEndpoint =
                        OperationContext.Current.IncomingMessageProperties[
                        RemoteEndpointMessageProperty.Name] as RemoteEndpointMessageProperty;

                    if (clientEndpoint != null)
                    {
                        return String.Format("{0}:{1}", clientEndpoint.Address, clientEndpoint.Port);
                    }
                    return "Failed to identify address";
}
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top