Non è così semplice. Il problema è che il UserNamePasswordValidator personalizzato viene chiamato prima di AuthorizationPolicy.Evaluate() e da qualche parte in mezzo, WCF inizializza Thread.CurrentPrincipal stesso. Ho provato a impostarlo all'interno del validatore della password ma non funziona, viene immediatamente danneggiato da WCF quando viene creato il principal iniziale. L'unico modo per farlo funzionare è se aspetto e imposti Thread.CurrentPrincipal nel metodo AuthorizationPolicy.Evaluate().
Mi piacerebbe sentire un guru di WCF spiegarlo perché vedo così tanti principianti di WCF che hanno lo stesso problema con questo e lo vedo come un difetto nel design della WCF.