Как правильно удалить .AspNet.TwoFactorRememberBrowser cookie после отключения 2FA пользователя? - PullRequest
0 голосов
/ 07 января 2019

Microsoft.AspNet.Identity V2.2: Когда пользователь отключает 2FA (ранее он был включен) , пользовательский файл cookie .AspNet.TwoFactorRememberBrowser остается и потенциально может представлять угрозу безопасности, учитывая правильные обстоятельства. Я ищу чистый и подходящий способ удалить куки для ТО пользователя или я должен просто изменить дату истечения срока действия на что-то в прошлом - и если да, то как мне это сделать? Я прогуглил кучу безрезультатно, как будто никто не понимает, что печенье осталось.

1 Ответ

0 голосов
/ 08 января 2019

Таким образом, в отсутствие лучшего способа, похоже, что это поможет при асинхронной функции / Manage / DisableTwoFactorAuthentication . Обратите внимание, что isPersistent = True удаляет cookie, а isPersistent = False просто устанавливает дату истечения срока действия.

' POST: /Manage/DisableTwoFactorAuthentication
<HttpPost>
<ValidateAntiForgeryToken>
Public Async Function DisableTwoFactorAuthentication() As Task(Of ActionResult)
    Await UserManager.SetTwoFactorEnabledAsync(User.Identity.GetUserId(), False)
    Dim userInfo = Await UserManager.FindByIdAsync(User.Identity.GetUserId())
    If userInfo IsNot Nothing Then
        Await SignInManager.SignInAsync(userInfo, isPersistent:=False, rememberBrowser:=False)
        Dim rememberBrowserIdentity = AuthenticationManager.CreateTwoFactorRememberBrowserIdentity(userInfo.Id)
        AuthenticationManager.SignIn(New AuthenticationProperties With {
            .IsPersistent = True,   'False still leaves old cookie but with expired date
            .ExpiresUtc = Date.UtcNow.AddDays(-1)
        }, rememberBrowserIdentity)
    End If
    Return RedirectToAction("Index", "Manage")
End Function

Надеюсь, это кому-нибудь поможет! : -)

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