Muszę rozszerzyć wbudowane uwierzytelnianie WCF, więc mój nowy powinien pracować obok siebie z wbudowanymi.Uwierzytelnianie WCF rozszerzenie
Na przykład chcę zezwolić na dostęp z zarejestrowanego adresu IP (autoryzacja niestandardowa) lub nazwa użytkownika + hasło (wbudowane uwierzytelnianie).
Pomyślnie zaimplementowałem ServiceAuthenticationManager
i ServiceAuthorizationManager
.
ServiceAuthenticationManager.Authenticate
prostu dodaje IPrincipal
wdrożenie do właściwości wiadomości, ServiceAuthorizationManager.CheckAccessCore
kopie IPrincipal
z przychodzących właściwości wiadomość do AuthorizationContext
właściwości.
Jednak ServiceAuthenticationManager.Authenticate
jest całkowicie zepsuty do standardowych mechanizmów, nawet jeśli wrócę authPolicy
lub wynik base.Authenticate
rozmowy.
Może poszedłem w złym kierunku? Jaki jest poprawny sposób dodawania niestandardowego uwierzytelniania WCF, nie wpływając na istniejące? Jak przywrócić wbudowane uwierzytelnianie, jeśli niestandardowy nie działa?