WCF 4.0: IAuthorizationPolicy Evaluate () вызывается после ServiceAuthorizationManager CheckAccessCore (): почему? - PullRequest
0 голосов
/ 13 декабря 2010

Я работаю над службой WCF, которая размещается через службу Windows.Я добавил свой Диспетчер пользовательских авторизаций и Политику авторизации и увидел, что метод политики авторизации Evaluate () на самом деле называется ПОСЛЕ CheckAccessCore () Диспетчера авторизации: не должно быть наоборот?Я искал в Google и нашел несколько советов, но у меня не получилось (например: ссылка )

Вот фрагмент app.config:

 <userNameAuthentication userNamePasswordValidationMode="Custom"

      customUserNamePasswordValidatorType="Reply.Platform.IoTAccessControlLibrary.IoTPwdValidator, Reply.Platform.IoTAccessControlLibrary" />

      </serviceCredentials>

      <serviceAuthorization serviceAuthorizationManagerType="Reply.Platform.IoTAccessControlLibrary.IoTServiceAuthorizationManager, Reply.Platform.IoTAccessControlLibrary">

        <authorizationPolicies>

          <add policyType="Reply.Platform.IoTAccessControlLibrary.IoTAuthorizationPolicy, Reply.Platform.IoTAccessControlLibrary" />

        </authorizationPolicies>

      </serviceAuthorization>

Может кто-нибудь мне помочь?

С уважением,

Джанпаоло

1 Ответ

1 голос
/ 09 марта 2011

Работает именно так, как задумано. Все сводится к этому простому уравнению: если доступ не должен быть предоставлен, тогда не нужно проверять, должен ли быть разрешен доступ. В случае примера, который вы приводите здесь, вы должны сначала проверить правильную комбинацию пары имя пользователя / пароль, а затем проверить, есть ли у них доступ к системе. После того как вы проверите, имеют ли они доступ к системе, вы затем оцените, авторизованы ли они в соответствии с определенными политиками.

Рассмотрим этот базовый пример:

1) Имя пользователя и пароль совпадают с известным пользователем? Да. (Учетные данные службы)
2) Включен ли этот известный пользователь в систему? Да. (Авторизация службы)
3) Имеет ли этот известный пользователь роль «Х»? Да. (IAuthorizationPolicy)

Следовательно, рабочий процесс определен WCF.

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