【问题标题】:asp.net identity - SetPasswordHashAsyncasp.net 身份 - SetPasswordHashAsync
【发布时间】:2015-05-12 18:32:31
【问题描述】:

我正在尝试配置身份以使用自定义提供程序。到目前为止一切顺利,我创建了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);
}

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

有人吗?

【问题讨论】:

  • 我有点在同一个地方。你从哪里得知你只需要在本地设置用户的哈希值而不是持久化它?

标签: c# asp.net asynchronous asp.net-identity


【解决方案1】:

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

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

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2022-01-10
  • 1970-01-01
  • 2017-10-22
  • 2020-11-17
  • 2015-04-20
  • 2020-09-30
  • 2014-01-21
  • 2016-03-01
相关资源
最近更新 更多