采取标准注册流程:
用户注册
用户收到带有链接激活帐户的电子邮件
用户激活帐户
我正在谈论的问题是:
当我们创建初始帐户时,我们会存储用户名、密码、电子邮件、激活密钥
当用户单击激活密钥链接时,我们使用 readmodel 验证密钥
然后我们触发传递用户名的 ActivateAccountCommand
我如何加载用户帐户以在域中激活它?
最初我想将新用户 Acount.Id 传递给 readmodel 但在 CommandExecutorBase 中没有访问权限(我知道) - 我们不保存这个:
protected override void ExecuteInContext(IUnitOfWorkContext context,
CreateAccountViaFormRegistrationCommand command)
{
var newKey = Guid.NewGuid().ToString();
var newAccount = new Account(
command.UserName, command.Email, command.Password, newKey);
SendWelcomeEmail(command.Email, command.UserName, newKey);
context.Accept();
}