Олицетворение клиента WCF - PullRequest
0 голосов
/ 28 июля 2010

Может ли кто-нибудь указать мне на [относительно] простое руководство по правильной настройке службы WCF 4.0, размещенной на ASP.Net, чтобы олицетворять учетные данные вызывающего абонента только для определенных методов службы, но разрешать анонимный доступ к другим методы?

Я много читал об этом на MSDN, но чем больше я читаю, тем больше путаюсь. Может быть, я просто тупица, но это кажется намного сложнее, чем должно быть: - (

Я просмотрел сообщения здесь на SE, но ни один из них не указывает на сквозной пример или учебник. В CodePlex есть руководящий документ WCF, но он выглядит безнадежно устаревшим и не обновлялся с 2008 года.

Любая помощь здесь будет принята с благодарностью.

1 Ответ

1 голос
/ 29 июля 2010

Это можно сделать с помощью свойства OperationBehaviorAttribute.Impersonation

[ServiceContract]
interface ISelectiveImpersonationExample
{
    [OperationContract]
    void ThisUsesImpersonation();

    [OperationContract]
    void ThisDoesNotUseImpersonation();
}


// Implementation
class SelectiveImpersonationExampleImpl : ISelectiveImpersonationExample
{
    [OperationBehavior(Impersonation=ImpersonationOption.Required)]
    public void ThisUsesImpersonation()
    {
        // ...
    }

    [OperationBehavior(Impersonation=ImpersonationOption.NotAllowed)]
    public void ThisDoesNotUseImpersonation()
    {
        // ...
    }
}

. Убедитесь, что вы не установили значение ImpersonateCallForAllOperations поведения службы в true.Если вы это сделаете, функция ThisDoesNotUseImpersonation сгенерирует InvalidOperationException .

Я продолжаю теорию здесь, и на самом деле не делала этого в реальной жизни.Если это не работает, пожалуйста, дайте мне знать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...