問題タブ [blazor-server-side]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
216 参照

token - IDataProtector Unprotect: 入力は有効な Base-64 文字列ではありません

Identity ConfirmEmailAsync に問題があり、常に無効なトークンが返されます。そこで、カスタム TokenProvider を作成します。一方では、私はこのコードを持っています:

反対側の ConfirmEmail ページでは、UserID とトークンを入力ルート パラメータとして受け取ります。

私が持っているトークンを作成するメソッドの最後にあるカスタム TokenProvider で:

Validate メソッドの冒頭には、次のものがあります。

確認リンクをクリックしてコードがこの行に到達するたびに、次のエラーが発生します。

入力は、base 64 以外の文字、3 つ以上の埋め込み文字、または埋め込み文字に無効な文字が含まれているため、有効な Base-64 文字列ではありません。"}

メソッド GenerateAsyncEmail の最後のバイトを base64string に変換すると、このエラーが発生するのはなぜですか? 私が持っているスタートアップクラスでも:services.AddDataProtection(); それをtokenproviderクラスに注入します。

これは、Blazor サーバーサイド コンポーネントの入力パラメーターのバグであると確信しています。