ASP.Net Core Identity login status lost after deploy

前端 未结 2 2159
旧巷少年郎
旧巷少年郎 2020-12-14 01:17

I am using ASP.Net Core and MS Identity, I try to understand why after each deployment the login users are logged out. I am running on a IIS 8.5

I have been trying t

2条回答
  •  半阙折子戏
    2020-12-14 01:53

    (solution split into a separate answer following Chris comment)

    I found a solution to keep the login status, it survives website stop/start, and an update of the website source folder:

    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));
    }
    

    With these additional lines and the machine key set, the login data stays after site stop/start and IIS server restart, and if the site is rebuilt.

    More information there: https://docs.microsoft.com/en-us/aspnet/core/security/data-protection/configuration/overview

    More proposed by justserega: https://docs.microsoft.com/en-us/aspnet/core/host-and-deploy/iis/?tabs=aspnetcore2x#data-protection

提交回复
热议问题