asp.net 身份 - SetPasswordHashAsync
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;
}
...但这必须 return 一个任务,我看不到这里有任何异步操作。
- 为什么 return 类型是
SetPasswordHashAsync
的任务而不仅仅是 void?
- 我应该如何实施
SetPasswordHashAsync
?
我知道我可以做类似的事情
public async Task SetPasswordHashAsync(User user, string passwordHash)
{
user.PasswordHash = passwordHash;
await Task.FromResult(0);
}
...但这不是同步的吗?很奇怪看到所有其他方法都用 async
Task 装饰并使用 await
,而这个到 return Task.FromResult()
有人吗?
任务不必是异步的。您可以按如下方式实现它:
public Task SetPasswordHashAsync(User user, string passwordHash)
{
user.PasswordHash = passwordHash;
return Task.FromResult(0);
}
我正在尝试配置身份以使用自定义提供程序。到目前为止一切顺利,我已经创建了 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;
}
...但这必须 return 一个任务,我看不到这里有任何异步操作。
- 为什么 return 类型是
SetPasswordHashAsync
的任务而不仅仅是 void? - 我应该如何实施
SetPasswordHashAsync
?
我知道我可以做类似的事情
public async Task SetPasswordHashAsync(User user, string passwordHash)
{
user.PasswordHash = passwordHash;
await Task.FromResult(0);
}
...但这不是同步的吗?很奇怪看到所有其他方法都用 async
Task 装饰并使用 await
,而这个到 return Task.FromResult()
有人吗?
任务不必是异步的。您可以按如下方式实现它:
public Task SetPasswordHashAsync(User user, string passwordHash)
{
user.PasswordHash = passwordHash;
return Task.FromResult(0);
}