Подтвердить что ты не робот

ASP.net Identity 2.0 Выйти из другого пользователя

Я использую asp.net MVC и ASP.net Identity 2.0.

На моем веб-сайте у администратора есть возможность запретить пользователя, и мне бы хотелось, чтобы пользователь был запрещен, что он автоматически будет выходить с веб-сайта.

Я знаю, что я могу выйти из текущего пользователя, позвонив

AuthenticationManager.SignOut();

Но можно ли выпустить другого пользователя? Или, может быть, короче его сеанс? Или что-нибудь?

Я знаю, что могу сделать глобальный фильтр на контроллерах, запрещающих доступ запрещенным пользователям, но этот фильтр будет работать против каждого пользователя, поэтому я не удовлетворен этим решением.

4b9b3361

Ответ 1

Вам необходимо настроить недействительность файлов cookie в 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
}

а затем обновить марку безопасности, как говорит Хао Кунг, когда пользователи запрещены.

Я писал об этом недавно.

Ответ 2

Если вы используете функцию securitystampvalidator, когда пользователь запрещен, просто вызывайте: UpdateSecurityStamp(userId), чтобы запретить использование существующих файлов cookie для входа в следующий раз.

Подробнее о SecurityStamp?