Raubend eine Methode nicht in Operation erwähnte
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.
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