c# - net - microsoft identity owin




ASP.net Identity 2.0 Disconnettersi con un altro utente (2)

Sto usando asp.net MVC e ASP.net Identity 2.0.

Sul mio sito web l'amministratore ha l'opzione di vietare l'utente, e vorrei che quando l'utente viene bannato, venga automaticamente disconnesso dal sito web.

So che posso disconnettere l'utente corrente chiamando

AuthenticationManager.SignOut();

Ma è possibile disconnettere un altro utente? O forse più breve la sua sessione? O qualcosa?

So che potrei fare un filtro globale sui controllori che vieta agli utenti vietati di accedere ma quel filtro verrebbe eseguito contro ogni utente, quindi non sono tranquillo soddisfatto di quella soluzione.


Dovrai configurare l'invalidazione dei cookie in Auth.Config.cs:

public void ConfigureAuth(IAppBuilder app)
{
    // important to register UserManager creation delegate. Won't work without it
    app.CreatePerOwinContext(UserManager.Create);

    app.UseCookieAuthentication(new CookieAuthenticationOptions
    {
        Provider = new CookieAuthenticationProvider
        {
            OnValidateIdentity = SecurityStampValidator
                .OnValidateIdentity<UserManager, ApplicationUser, int>(
                    validateInterval: TimeSpan.FromMinutes(10),
                    regenerateIdentityCallback: (manager, user) => user.GenerateUserIdentityAsync(manager))
        },
        // other configurations
    });

    // other stuff
}

e quindi aggiornare il timbro di sicurezza come dice Hao Kung quando gli utenti sono bannati.

Ne ho parlato recentemente di recente


Se si utilizza la funzionalità securitystampvalidator, quando un utente è bannato basta chiamare: UpdateSecurityStamp(userId) per fare in modo che i cookie di accesso esistenti non siano validi la volta successiva che vengono controllati.

Ulteriori informazioni su SecurityStamp?





asp.net-identity