asp.net identity - SetPasswordHashAsync



我正在尝试配置身份以与自定义提供商一起使用。到目前为止,我已经创建了UserStore

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

(使用所有方法)和usermanager:

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

,用户是我的自定义实体,持有用户。

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

public async Task SetPasswordHashAsync(User user, string passwordHash)

据我所知,这是在创建用户之前称为的,所以我在这里要做的就是:

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

...但这必须返回一个任务,我看不到任何异步可以在这里完成。

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

我知道我可以做

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

...但是这不是同步吗?看到所有其他用async任务装饰并使用await的其他方法很奇怪,并且这是返回Task.FromResult()

有人吗?

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

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

相关内容

  • 没有找到相关文章

最新更新