私はAsp.Net Core RC2アプリケーションを使用しており、Cookieの認証に問題があります。 startup.csでは、私は基本構成したファイル:メモリに保存されているCookieのキー、サーバを切り替えることができません
app.UseIdentity();
app.UseCookieAuthentication();
を私はアイデンティティのインタフェースIUserStoreとIRoleStoreを実施しているドキュメンタルデータベースを、使用しているので、私は、EntityFrameworkを使用していませんよ。
デバッグのためにlocalhostにログインすると、永続的なCookieを設定しても、アプリケーションをシャットダウンするまで有効です。私はそれを再起動すると、クッキーが期限切れになり、サーバーはログインページにリダイレクトされます。これは、クッキーのキーが記憶されていることを私に教えてくれます。なぜ、dbのユーザーのプロファイルレコードにキーを保持しないのですか?クッキーは、アプリケーションが有効になるまで動作します。
これは、運用サーバーにアプリケーションを展開する際に発生する問題です。私は、プロダクション/ステージングソリューションを使用しています。ステージングにアプリケーションをデプロイし、サーバーを切り替えると、ログインしているすべてのユーザーのセッションが失効することに注意しました。これは大きな問題です。 2台のサーバーが異なるため、https://docs.asp.net/en/latest/security/data-protection/compatibility/cookie-sharing.htmlで提案されているように、ローカルディレクトリにCookieキーを共有することもできません。どうすれば解決できますか?
新しいマシンに移行すると人々はログオフするだろうと心配ですか?どうして? –
アジャイル開発で毎日のようにマシンを切り替えることができるので – tmm360
私はredisのように**分散メモリキャッシュを使用できない理由は何ですか? Redisのサポートは、ASP.NET Coreでそのままの状態で提供され、Redisクラスタが必要なだけでアプリケーションにパッケージを追加し、承認ミドルウェアが登録される前のどこかにある 'AddRedisCache()'メソッドStartupクラスを呼び出します。これにより、デフォルトのInMemoryCacheではなく、Redisに値を格納するアプリケーションが作成されます – Tseng