ASP.Net CoreとMS Identityを使用していますが、各展開後にログインユーザーがログアウトされる理由を理解しようとしています。 IIS 8.5で実行しています
私はこのスレッドでメソッドを試しています(静的マシンキーの設定) 展開後のASP.NET Identity 2の再ログイン サーバーレベルで静的キーを生成するIIS UIそして、以下をウェブサイトのweb.configに追加します:
<system.web>
<machineKey validationKey="XXX"
decryptionKey="XXX"
validation="SHA1" decryption="AES"/>
</system.web>
ただし、問題は残っています。
しかし、私もこれを行います:
ユーザーがログオフする原因は何ですか?それを回避する方法について何か考えはありますか?
(クリスのコメントの後に別の答えに分割されたソリューション)
ログインステータスを維持するための解決策を見つけました。それは、Webサイトの停止/開始、およびWebサイトのソースフォルダーの更新を乗り切ります。
public void ConfigureServices(IServiceCollection services)
{
services.AddDataProtection()
// This helps surviving a restart: a same app will find back its keys. Just ensure to create the folder.
.PersistKeysToFileSystem(new DirectoryInfo("\\MyFolder\\keys\\"))
// This helps surviving a site update: each app has its own store, building the site creates a new app
.SetApplicationName("MyWebsite")
.SetDefaultKeyLifetime(TimeSpan.FromDays(90));
}
これらの追加の行とマシンキーセットを使用すると、サイトの停止/開始後およびIISサーバーの再起動後、およびサイトが再構築された場合でも、ログインデータは残ります。
詳細情報: https://docs.Microsoft.com/en-us/aspnet/core/security/data-protection/configuration/overview
Justseregaによる提案: https://docs.Microsoft.com/en-us/aspnet/core/Host-and-deploy/iis/?tabs=aspnetcore2x#data-protection
認証はデータ保護スタックを使用します。データ保護が構成されていない場合、キーはメモリに保持され、アプリの再起動時に破棄されます。
アプリの再起動時にキーリングがメモリに保存されている場合:
データ保護を設定する必要があります。詳細はこちら https://docs.Microsoft.com/en-us/aspnet/core/Host-and-deploy/iis/?tabs=aspnetcore2x#data-protection =