Как отключить авторизацию утверждений по запросу (на основе URL-адреса) в WCF?
-
20-12-2019 - |
Вопрос
У меня есть служба WCF, которая использует авторизацию на основе утверждений.
Я хочу приписать операцию с помощью ClaimsPrincipalPermissionAttribute
и в моем пользовательском случае триггер проверки авторизации будет только один раз ClaimsAuthorizationManager
.Однако я обнаружил, что эта проверка авторизации запускается дважды;один раз для URL-адреса, а затем второй раз для самой операции.
Я не могу найти много информации по этому вопросу, но то, что я нашел, указывает на то, что это сделано специально.Могу ли я перезаписать это поведение и не выполнять никакой авторизации по URL-адресу, а только авторизацию на основе операции?
Я не заинтересован в авторизации на основе URL-адресов и предпочитаю избегать добавления утверждений для каждого URL-адреса, поскольку их, скорее всего, у меня будет много, и они могут измениться в будущем.
Я прочитал несколько статей и видел видео Доминика Байера на эту тему, и хотя я многому научился из них, я до сих пор не могу найти ответа на этот вопрос.Неужели это просто невозможно, и мне просто приходится иметь дело с необходимостью авторизации на основе URL-адреса?
Решение
Вы не можете изменить это поведение — я написал собственный атрибут разрешения утверждений, который выдает разные типы утверждений.Таким образом, я мог различать вызов каждого запроса и явный атрибут.
или пакет nuget Thinktecture.IdentityModel.