gpt4 book ai didi

asp.net-identity - ASP.NET Identity 中的哪些代码设置了用户的安全标记?

转载 作者:行者123 更新时间:2023-12-04 01:53:32 27 4
gpt4 key购买 nike

安全戳是根据用户的用户名和密码生成的随机值。

在一系列方法调用之后,我将安全标记的来源追溯到 SecurityStamp Microsoft.AspNet.Identity.EntityFramework.IdentityUser<TKey, TLogin, TRole, TClaim> 的属性(property)类。

但是,我无法找到设置此值的代码。我发现这个属性只有一个 setter,那就是提供核心存储的 EntityFramework 层( IUserStore<..>IRoleStore<...> 等)。

// From Microsoft.AspNet.Identity.EntityFramework.UserStore<...>
public virtual Task SetSecurityStampAsync(TUser user, string stamp)
{
this.ThrowIfDisposed();
if (user == null)
{
throw new ArgumentNullException("user");
}
user.SecurityStamp = stamp;
return Task.FromResult<int>(0);
}

但是,我没有发现调用 SetSecurityStampAsync 的代码方法。

这显然会在用户的凭据更改或创建新用户时重置。

什么代码设置这个值?

最佳答案

Microsoft.AspNet.Identity.Core 默认的 UserManager 大量使用这个方法。

它使用内部方法 UpdateSecurityStampInternal 和公共(public)方法 UpdateSecurityStampAsync 调用它。

以下方法调用内部方法:

  • 创建异步
  • 移除密码异步
  • 更新密码
  • 移除登录异步
  • 设置电子邮件异步
  • SetPhoneNumberAsync
  • ChangePhoneNumberAsync
  • SetTwoFactorEnabledAsync

您应该能够使用 symbolsource 获取用户管理器的源代码。

关于asp.net-identity - ASP.NET Identity 中的哪些代码设置了用户的安全标记?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31919105/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com