Как отключить авторизацию утверждений по запросу (на основе URL-адреса) в WCF?

StackOverflow https://stackoverflow.com//questions/20007539

Вопрос

У меня есть служба WCF, которая использует авторизацию на основе утверждений.

Я хочу приписать операцию с помощью ClaimsPrincipalPermissionAttribute и в моем пользовательском случае триггер проверки авторизации будет только один раз ClaimsAuthorizationManager.Однако я обнаружил, что эта проверка авторизации запускается дважды;один раз для URL-адреса, а затем второй раз для самой операции.

Я не могу найти много информации по этому вопросу, но то, что я нашел, указывает на то, что это сделано специально.Могу ли я перезаписать это поведение и не выполнять никакой авторизации по URL-адресу, а только авторизацию на основе операции?

Я не заинтересован в авторизации на основе URL-адресов и предпочитаю избегать добавления утверждений для каждого URL-адреса, поскольку их, скорее всего, у меня будет много, и они могут измениться в будущем.

Я прочитал несколько статей и видел видео Доминика Байера на эту тему, и хотя я многому научился из них, я до сих пор не могу найти ответа на этот вопрос.Неужели это просто невозможно, и мне просто приходится иметь дело с необходимостью авторизации на основе URL-адреса?

Это было полезно?

Решение

Вы не можете изменить это поведение — я написал собственный атрибут разрешения утверждений, который выдает разные типы утверждений.Таким образом, я мог различать вызов каждого запроса и явный атрибут.

https://github.com/thinktecture/Thinktecture.IdentityModel.45/tree/master/IdentityModel/Thinktecture.IdentityModel/Authorization

или пакет nuget Thinktecture.IdentityModel.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top