Как разрешить новым клиентам доступ только к нескольким методам в 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);
    }
}
Другие вопросы по тегам