ASP.NET Core:新的ApplicationUser登录需要多长时间?

问题描述 投票:0回答:1

我目前正在创建 Blazor WASM Web 应用程序,我偶然发现了以下内容:

我可以在 Web API 端点中使用以下几行将匿名用户验证为“Alice”(显然没有在数据库中存储任何内容):

var user = new ApplicationUser();
user.Email = "[email protected]";
user.UserName = "Alice";

await _signInManager.SignInAsync(user, false);

我的问题是:

  1. SignInManager
    如何在不将任何内容存储到数据库的情况下跟踪Alice?
  2. 用户以这种方式进行身份验证需要多长时间?只要客户端保留cookie就可以了?直到服务器重新启动?
  3. 一段时间后
    SignInManager
    会删除“缓存”用户吗?
  4. 如果是这样(3.),我是否能够提供一个端点,如果用户仍然拥有上述 cookie,我是否能够自动将“匿名”身份“Alice”重新分配给用户?
asp.net-core blazor-webassembly asp.net-authentication
1个回答
0
投票

SignInManager 如何在不将任何内容存储到数据库中的情况下跟踪 Alice?

它会在cookie中生成一个值,如果您不编写任何逻辑来基于此cookie存储某些内容,则它不会存储到数据库中。

用户以这种方式进行身份验证需要多长时间?只要客户端保留cookie就可以了?直到服务器重新启动?

检查生成的cookie:

enter image description here

这是一个会话cookie,通常情况下,会话cookie会在客户端关闭时被删除。 但是,不同的浏览器可能会以不同的方式处理会话cookie。

SignInManager 会在一段时间后删除“缓存”用户吗?

当cookie过期时,用户就会被错过。

L如果是这样(3.),我是否能够提供一个端点,如果用户仍然拥有所说的 cookie,我是否能够自动将“匿名”身份“Alice”重新分配给用户?

一般情况下,不需要做这件事。您可以直接在 cookie 中生成一个名称来识别哪个用户正在访问您的应用程序,而无需调用 _signInManager。

© www.soinside.com 2019 - 2024. All rights reserved.