gpt4 book ai didi

c# - asp.net 身份 - SetPasswordHashAsync

转载 作者:太空狗 更新时间:2023-10-29 20:13:14 25 4
gpt4 key购买 nike

我正在尝试配置身份以使用自定义提供程序。到目前为止一切顺利,我已经创建了 UserStore:

public class UserStore : IUserStore<User>, IUserPasswordStore<User>

(实现了所有方法)和 UserManager:

public UserManager(IUserStore<User> userStore)
: base(userStore)
{ }

而 User 是我用来保存用户的自定义实体。

问题是在 UserStore 中我有以下内容:

public async Task SetPasswordHashAsync(User user, string passwordHash)

据我了解,这是在创建用户之前调用的,所以我在这里应该做的是:

public Task SetPasswordHashAsync(User user, string passwordHash)
{
user.PasswordHash = passwordHash;
}

...但这必须返回一个任务,我看不到这里有任何异步操作。

  1. 为什么 SetPasswordHashAsync 的返回类型是 Task 而不仅仅是 void?
  2. 我应该如何实现 SetPasswordHashAsync

我知道我可以做类似的事情

public async Task SetPasswordHashAsync(User user, string passwordHash)
{
user.PasswordHash = passwordHash;
await Task.FromResult(0);
}

...但这不是同步的吗?奇怪的是,所有其他方法都装饰有 async Task 并使用 await,而这个返回 Task.FromResult()

有人吗?

最佳答案

任务不必是异步的。您可以按如下方式实现它:

public Task SetPasswordHashAsync(User user, string passwordHash)
{
user.PasswordHash = passwordHash;
return Task.FromResult(0);
}

关于c# - asp.net 身份 - SetPasswordHashAsync,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30198855/

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