ユーザーが受け取った電子メールの[Confirm Email]リンクをクリックすると、URLはユーザーをAccount ControllerのConfirmEmailAsyncメソッドに誘導します。 このメソッドは、呼び出しの結果を電子メールトークンプロバイダに返します。Aspnet Core 1.0 IDユーザーマネージャConfirmEmailAsyncはInvalidTokenを返します
var result = await _userManager.ConfirmEmailAsync(user, code);
ユーザーが登録したときに、生成された電子メールトークンと、上記のコード変数に渡されたトークンが同一であることを取得しました。
私はこれがasp-net-core-identity-token-providersによって自動的に行われているとは思いますが、Base64のエンコードとデコードは成功しませんでした。
アイデア?
登録時に、ユーザーをdbに保存しています。これが成功すると、電子メールと電子メールトークンが作成されます。その後、電子メールが送信されます。ユーザーに対しては他のアクションは実行されません。 – Greg
実際、あなたは100%正しいです。電子メールを送信した後、セキュリティスタンプを変更していたユーザーにロールを追加していました。私はこれを修正し、今はすべてが期待どおりに機能しています。どうもありがとう!! – Greg
@Gregお手伝いします。 :) –