Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Intercettare fasi RemoteAuthenticator #32

Open
mar-rossini opened this issue Jul 3, 2024 · 1 comment
Open

Intercettare fasi RemoteAuthenticator #32

mar-rossini opened this issue Jul 3, 2024 · 1 comment

Comments

@mar-rossini
Copy link

Ciao a tutti, intanto come sempre vi ringrazio per l'enorme lavoro e supporto che ci fornite con le vostre libreria.

Sto facendo un passaggio dal vecchio Saml2.0 al nuovo OIDC, nella vecchia implementazione con la libreria messa a disposizione da voi ero in grado di intercettare RemoteAuthenticator tramite:

public void ConfigureServices(IServiceCollection services)
{
        .AddSpid(Configuration, o => {
         ...
            o.Events.OnAuthenticationSuccess = async (s) => await s.HttpContext.RequestServices.GetRequiredService<CustomSpidEvents>().AuthenticationSuccess(s);
        })
}

e

public class CustomSpidEvents : SpidEvents
{
    private readonly IMyService _myService;
    public CustomSpidEvents(IMyService myService)
    {
        _myService = myService;
    }
    
    public override Task AuthenticationSuccess(AuthenticationSuccessContext context)
    {
        var principal = context.AuthenticationTicket.Principal;
        var spidCode = principal.FindFirst(SpidClaimTypes.SpidCode);	
        return base.AuthenticationSuccess(context);
    }

}

Come posso farlo in questo caso? Mi sono accorto che SpidCieEvents è solo internal e non è presente la prop "Events" nella configurazione in Startup.

Grazie ancora,
Marco R

@PiemP
Copy link

PiemP commented Dec 4, 2024

Dentro OpenIdConnectOptions trovi la proprietà events che puoi riscrivere nella vecchia maniera. Dovresti poter registrare una classe nel contesto di DI per impostare il tuo evento dentro queste opzioni.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants