Когда файл cookie аутентификации привязан к текущему аутентифицированному пользователю и как происходит привязка? - PullRequest
0 голосов
/ 29 декабря 2018

, поэтому я работаю над веб-приложением asp.net, и у меня возникают проблемы с выяснением:

1.) Когда файл cookie аутентификации привязан к текущему аутентифицированному пользователю?

2.) Как происходит связывание?

Хотя это работает, я нахожу странным, что (метод входа в систему), доступный через (// POST:/ Account / Login) ни в коем случае не привязывает аутентифицированного пользователя к cookie-файлу после подтверждения того, что пользователь существует в базе данных.

Может кто-нибудь дать простое и понятное объяснение, почему это так !!!После бессонной ночи не нашел никакой хорошей документации

Я использую шаблон по умолчанию [ASP.NET Web Application (.NET Framework)],

Вотнастроить вход в cookie,

app.UseCookieAuthentication(new CookieAuthenticationOptions  
{
    AuthenticationType = DefaultAuthenticationTypes.ApplicationCookie,
    LoginPath = new PathString("/Account/Login"),
    Provider = new CookieAuthenticationProvider
    {
        // Enables the application to validate the security stamp when the user logs in.
        // This is a security feature which is used when you change a password or add an external login to your account.
        OnValidateIdentity = SecurityStampValidator.OnValidateIdentity<ApplicationUserManager, 
        ApplicationUser>(
        validateInterval: TimeSpan.FromMinutes(1),
        regenerateIdentity: (manager, user) => user.GenerateUserIdentityAsync(manager))
    },
    SlidingExpiration = false,
    ExpireTimeSpan = TimeSpan.FromMinutes(2)
});

А вот форма для входа в систему, которая подтверждает и аутентифицирует пользователя без ссылки на cookie

// POST: /Account/Login
[HttpPost]
[AllowAnonymous]
[ValidateAntiForgeryToken]
public async Task Login(LoginViewModel model, string returnUrl)
{
    if (!ModelState.IsValid)
    {
        return View(model);
    }
    // This doesn't count login failures towards account lockout
    // To enable password failures to trigger account lockout, change to shouldLockout: true
    var result = await SignInManager.PasswordSignInAsync(model.Email, model.Password, model.RememberMe, shouldLockout: false);
    switch (result) {
    case SignInStatus.Success:
        return RedirectToLocal(returnUrl);
    case SignInStatus.LockedOut:
        return View("Lockout");
    case SignInStatus.RequiresVerification:
        return RedirectToAction("SendCode", new { ReturnUrl = returnUrl, RememberMe = model.RememberMe });
    case SignInStatus.Failure:
    default:
        ModelState.AddModelError("", "Invalid login attempt.");
        return View(model);
    } 
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...