Смена штампа безопасности - PullRequest
0 голосов
/ 01 июля 2019

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

Я помещаю этот код в ApplicationUserManager.cs, но это не работает:

 private static string NewSecurityStamp()
 {
     return Guid.NewGuid().ToString();
 }

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

1 Ответ

0 голосов
/ 01 июля 2019

Вот что происходит.Однако штамп безопасности повторно проверяется только с интервалом (по умолчанию каждые 30 минут), чтобы уменьшить количество запросов к базе данных.Вы можете уменьшить этот интервал, даже до нуля, что эффективно делает повторную проверку штампа с каждым запросом.Тем не менее, это увеличит трепетание в базу данных.

services.Configure<SecurityStampValidatorOptions>(o =>
{
    // WARNING: this will issue a query for every request
    // You might want to rather just compromise with an interval
    // less than 30 minutes (5 minutes, 10 minutes, etc.)
    o.ValidationInterval = TimeSpan.Zero;
});

Альтернативный вариант - просто выйти из системы после такого изменения.Если цель состоит в том, чтобы просто заставить их повторно войти в систему, это должно сделать трюк намного лучше.Просто введите SignInManager<TUser>, а затем вызовите SignOutAsync в этом случае.Вам нужно будет перенаправить пользователя впоследствии.Это может быть непосредственно на странице входа или в какой-либо области защищенного сайта, что затем приведет к тому, что они будут перенаправлены на страницу входа для аутентификации.В любом случае необходимо перенаправление, чтобы действительно удалить файл cookie авторизации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...