Como desativar por solicitação (Baseado em URL) Autorização de reivindicações no WCF?
-
20-12-2019 - |
Pergunta
Eu tenho um serviço WCF que usa a autorização baseada em reivindicações.
O que eu quero fazer é atribuir uma operação com um ClaimsPrincipalPermissionAttribute
e só terá o gatilho de verificação de autorização uma vez no meu gerenciamento personalizado. No entanto, estou descobrindo que esta verificação de autorização está sendo acionada duas vezes; uma vez para o URL e, em seguida, uma segunda vez na própria operação.
Não consigo encontrar muita informação sobre este assunto, mas o que eu encontrei indica que isso é por design. É possível que eu substitua esse comportamento e não execute qualquer autorização na URL e somente autorização com base na operação?
Não tenho interesse em autorizar com base nos URLs, e realmente evitar a adição de reclamações para cada URL, pois provavelmente terá muitos deles e eles podem mudar no futuro.
Eu li vários artigos e vi vídeos de Dominick Baier sobre este assunto, e enquanto aprendi muito com isso, ainda não consigo encontrar uma resposta para isso. Isso simplesmente não é possível e eu só tenho que lidar com ter que autorizar com base no URL também?
Solução
Você não pode alterar esse comportamento - o que fiz é escrever um atributo de permissão de reclamações personalizados que emite diferentes tipos de reivindicação.Desta forma, poderia distinguir entre a invocação por solicitação e o atributo explícito.
ou o pensamento.IdentityModel Nuget Package.