Как разрешить новым клиентам доступ только к нескольким методам в WCF?
У меня есть сервис WCF с 5 контрактами на эксплуатацию. Скажите 200 пользователей, использующих этот сервис. Теперь новые 50 клиентов хотят только 3 операции от этой службы WCF.
Как я могу ограничить их использование только 3 и блокировать другие 2 операции?
1 ответ
Возможно, вам лучше всего смотреть на какую-то роль авторизации. Это может быть легко реализовано в качестве атрибута в контракте данных. Фактическая логика определения того, авторизован ли данный конкретный пользователь, полностью зависит от вашего замысла.
Кроме того, вы можете предоставить разные конечные точки, для которых определен другой интерфейс, и использовать общие методы для повторного использования кода.
public Interface IInterface1
{
void Method1(int something);
void Method2(int something);
}
public Interface IInterface2
{
void Method1(int something);
void Method3(int something);
}
public InterfaceImplementation1 : IInterface1
{
public void Method1(int something)
{
SharedClass.SharedMethod1(something);
}
public void Method2(int something)
{
SharedClass.SharedMethod2(something);
}
}
public InterfaceImplementation2 : IInterface2
{
public void Method1(int something)
{
SharedClass.SharedMethod1(something);
}
public void Method3(int something)
{
SharedClass.SharedMethod3(something);
}
}
public class SharedClass
{
public static void SharedMethod1 (int something)
{
DoSomething(something);
}
public static void SharedMethod2 (int something)
{
DoSomething(something);
}
public static void SharedMethod3 (int something)
{
DoSomething(something);
}
}