【问题标题】:.Net Core Identity AuthenticationCookie not working.Net Core Identity AuthenticationCookie 不起作用
【发布时间】:2021-03-01 21:47:26
【问题描述】:

我最近遇到了我的 net5.0 应用程序(从 net core 3.1 升级)的问题。我正在使用 Microsoft.AspNetCore.Identity 登录,它工作得很好。将其部署到生产机器后,登录仍然有效,我收到了我的 cookie。但是在第二天调用 url 之后,尽管有我的身份验证 cookie(它的有效期为 30 天),但我没有登录。在我托管在 IIS 上的本地计算机上,它工作正常。以下是我的部分代码:

Startup.cs:
配置服务

    services.ConfigureApplicationCookie(options =>
        {
            options.ExpireTimeSpan = TimeSpan.FromDays(30);
            options.SlidingExpiration = true;
            options.LoginPath = new PathString("/Account/Login");
            options.LogoutPath = new PathString("/Account/Logoff");
            options.Cookie.Name = "MyApplication";
            options.Cookie.IsEssential = true;
        });

我正在使用 ProtectPersonalData 属性通过密钥环加密数据库中的用户数据:

    services.AddIdentity<ApplicationUser, IdentityRole>(config =>
    {
        config.SignIn.RequireConfirmedEmail = true;
        config.Stores.ProtectPersonalData = true;
        config.Stores.MaxLengthForKeys = 128;
    })
    .AddEntityFrameworkStores<ApplicationDbContext>()
    .AddDefaultTokenProviders();

配置

    app.UseHttpsRedirection();
    app.UseStaticFiles();
    app.UseCookiePolicy();

    app.UseRouting();

    app.UseAuthentication();
    app.UseAuthorization();

这是 Firefox 中的 cookie: [cookie][1]

据我了解,该 cookie 应该在对该域的每次请求时发送到服务器。即使 Firefox 声明,它是在我请求的确切时间最后一次访问的,但它没有任何效果。
如果您需要任何进一步的代码,请告诉我。任何帮助表示赞赏! [1]:https://i.stack.imgur.com/UTSuR.png

【问题讨论】:

  • 你设置了token过期时间吗?
  • 我正在使用“options.ExpireTimeSpan = TimeSpan.FromDays(30);”对于我的 ApplicationCookie,如上所示。我的 PasswordSignInAsync 不包含任何过期时间逻辑
  • 是cookie过期时间,需要配置token过期时间。
  • 我不明白你在说什么。令牌不只是用于电子邮件确认、密码重置等吗?

标签: c# .net authentication cookies identity


【解决方案1】:

似乎我的代码一切正常。错误在 IIS 配置中。当我使用 DataProtection 时,ApplicationPool 应该将“加载用户配置文件”设置为 true,否则它无法存储密钥环,并且在应用程序关闭/重新启动后数据会丢失。在生产服务器上更改后,它现在似乎可以工作了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-04-03
    • 2022-07-08
    • 2021-10-30
    • 2021-03-03
    • 1970-01-01
    • 2021-10-22
    • 2023-04-04
    • 1970-01-01
    相关资源
    最近更新 更多