2017-04-13 12 views
3

私は最新の.NET Core(1.1)とEF Coreを使用してASP.NET Webサイトを構築していますが、ASP.NET Identityも使用しています。私のウェブサイトをAzureホストに接続して、すべてが期待通りに動いている(私のWindowsローカルホストを含​​む)。しかし、私は自分のLinux(Centos 7)専用サーバーをApacheに切り替えていますが、パスワードをリセットしたり電子メールを確認しようとすると「無効なトークン」というメッセージが表示されます。ASP.NETコアID - 無効なトークン(Linux)

私はこのような他の質問をチェックして、溶液が電子メールを介して送信される/デコードURLをエンコードすることでした、しかし、私はすでにそれはまだ働いていないということでしてきました。

は、私はまた助けにはならなかったことが、Linuxホスト上の移行で何かがあった場合には私のサーバーにローカルホストからデータベース全体をコピーしようとしました。すべての移行が適用され、Identityコンテキストを使用しないその他のものも機能します。

さらに検索した結果、ホスト上の別のマシンキーで問題が発生する可能性があり、セキュリティスタンプが同期していないことがわかりましたが、新しいバージョンサーバーへの私のアプリの、そしてlocalhost上のすべては、Azureのホスティングでも同様に動作します。これは、コアではなく、ASP.NET MVCの問題でした。

どうすればこの問題をデバッグできますか?私は新しいEFコアでこの問題を抱える人は見当たらず、特にLinuxホストではそうではありません。デフォルトのlink

答えて

0

DOTNETコアMVCアプリケーションはクッキーで暗号化された自分の認証トークンを保存します。

私は公式の.NETのコアのウェブサイト上で案内され、最新のVS 17.私が設定しているApacheのプロキシを使用してサイトを展開します。このデータの暗号化/復号化のための

シード/キーは、すべてのマシン上の異なるマシンのキーに基づいています。

あなたは(負荷分散)のアプリの複数のインスタンスを実行した場合、あなたのシステムが他のマシン上に作成されたセッションクッキーを、解読しようとすると、このメッセージ/エラーが発生します。あなたはまだあなたのブラウザでクッキーの情報を持っていて、この新しいホストofcouse別のホスト上でWebサイトをホスティングして起動した場合一方

は文句を言わないこれらの既存のセッションクッキーを解読することができます。

私は同じ問題があったのでこれを知っています。 https://github.com/aspnet/Session/tree/dev/src/Microsoft.AspNetCore.Session

dotnetコアがまだリリースされておらず、私がthis blogを使用してしまったときに試しました。しかしおそらく今は非常に時代遅れです。

私はあなたがデータストレージとしてクッキーを使用するのではなく、外部のセッションストアを使用するためにあなたをアドバイスアドバイスと思います。それらを設定する方法に関するドキュメントを読んでください:https://docs.microsoft.com/en-us/aspnet/core/fundamentals/app-state

関連する問題