Search code examples
c#asp.net-coreasp.net-core-mvcasp.net-core-identity

How to sign out other user in ASP.NET Core Identity


How can i sign out another user (not the currently logged one) in ASP.NET Core Identity.

I know there is a SignOutAsync() method in SignInManager, but there seems to be no override accepting user as argument. I'm looking for something like:

signInManager.SignOutAsync(user);

Solution

  • First update the security stamp of that user:

    await userManager.UpdateSecurityStampAsync(user)
    

    Then that user won't be noticed the changes until the arrival of the SecurityStampValidationInterval. So set it to Zero for the immediate logout:

    services.AddIdentity<User, Role>(identityOptions =>
    {
       // enables immediate logout, after updating the user's stat.
       identityOptions.SecurityStampValidationInterval = TimeSpan.Zero;
    }
    

    Update: For ASP.NET Core Identity 2.x, 3.x, 5.x

    services.Configure<SecurityStampValidatorOptions>(options =>
    {
        // enables immediate logout, after updating the user's stat.
        options.ValidationInterval = TimeSpan.Zero;   
    });