Использование метода, не упомянутого в OperationContract

StackOverflow https://stackoverflow.com/questions/819643

  •  03-07-2019
  •  | 
  •  

Вопрос

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

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

Это было полезно?

Решение

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

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

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

Другие советы

Вот код для определения 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";
}
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top