Использование метода, не упомянутого в OperationContract - PullRequest
0 голосов
/ 04 мая 2009

У меня есть услуги WCF. Который имеет два метода, скажем, Get и Save. Я хочу предоставить только метод Get третьей стороне, которая будет использовать службу, в то время как мое приложение должно иметь возможность использовать как Get, так и Save.

Есть ли способ использовать метод не в OperationContract? Я думаю о проверке имени хоста запроса и предоставлении доступа только в том случае, если это имя хоста моего приложения.

Ответы [ 2 ]

4 голосов
/ 04 мая 2009

Почему бы не создать вторую ServiceContract, в которой Get и Set имеют значение OperationContracts? Тогда вы можете определить, кто может получить этот второй контракт.

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

[ServiceContract]
public interface IFooInternal : IFoo
{
    [OperationContract]
    void Set();
}
0 голосов
/ 20 января 2010

Вот код для определения IP-адреса хоста:

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";
}
...