我正在尝试配置身份以与自定义提供商一起使用。到目前为止,我已经创建了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;
}
...但这必须返回一个任务,我看不到任何异步可以在这里完成。
- 为什么返回类型是
SetPasswordHashAsync
的任务,而不仅仅是void? - 我应该如何实现
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);
}