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?

Foi útil?

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.

https://github.com/Thinktecture / Thinktecture.identityModel.45 / Tree / Master / IdentityModel / Thinktecture.identityModel / Autorização

ou o pensamento.IdentityModel Nuget Package.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top