Использование метода, не упомянутого в OperationContract
Вопрос
У меня есть сервисы 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";
}
Не связан с StackOverflow