【问题标题】:Authorize is not authenticating action asp.net core 2.0 with cookies授权不使用 cookie 验证操作 asp.net core 2.0
【发布时间】:2018-05-06 17:43:33
【问题描述】:

我在 Asp.net core 2.0 mvc-template 中构建一个 Web 应用程序,我将 ExpireTimeSpan 设置为 365 天,但是当我关闭浏览器并在几分钟后我回到该站点时, 它将我重定向到登录路径,我检查存储在浏览器中的 cookie 我看到 cookie 设置为 365 天后,这意味着我在哪里犯了错误?

在我的 ConfigureServices 方法中:

  public void ConfigureServices(IServiceCollection services)
    {

        services.AddDbContext<ApplicationDbContext>(options =>
         options.UseSqlite("Data Source=DataBaseContext.db"));
        services.AddIdentity<ApplicationUser, IdentityRole>(option =>
               {
                   option.Password.RequireDigit = false;
                   option.Password.RequiredLength = 5;
                   option.Password.RequireLowercase = false;
                   option.Password.RequireNonAlphanumeric = false;
                   option.Password.RequireUppercase = false;
                   option.User.RequireUniqueEmail = false;
               }
            )
            .AddEntityFrameworkStores<ApplicationDbContext>()
            .AddDefaultTokenProviders(); 
                  services.AddAuthentication(CookieAuthenticationDefaults.AuthenticationScheme)
        .AddCookie();

        services.ConfigureApplicationCookie(Option => {
            Option.LoginPath = "/Account/UserChalenge";
            Option.ExpireTimeSpan = TimeSpan.FromDays(365);
            Option.SlidingExpiration = true;
            });
        // Add application services.
        services.AddTransient<IEmailSender, EmailSender>();
        services.AddDetection();
        services.AddMvc().AddSessionStateTempDataProvider().AddCookieTempDataProvider();
        services.AddSession();


    }

在配置方法中:

        public void Configure(IApplicationBuilder app, IHostingEnvironment env )
    {

        if (env.IsDevelopment())
        {
            app.UseDeveloperExceptionPage();
            app.UseBrowserLink();
            app.UseDatabaseErrorPage();
        }
        else
        {
            app.UseExceptionHandler("/Home/Error");
        }

        app.UseStaticFiles();
        app.UseAuthentication();
        app.UseSession();
       // ... use mvc template

        });


    }

【问题讨论】:

  • 在本地服务器上工作正常,但在主机上不工作
  • 您的services.AddAuthentication() 配置在哪里?
  • 嗨,谢谢,我在 services.ConfigureApplicationCookie 之前添加了这一行,但工作量不大:
  • 问题是为什么在我本地的 iis express 中它工作得很好,但在主机上工作?是否与iis idel timout重启有关?

标签: asp.net-core asp.net-identity


【解决方案1】:

只需联系您的托管服务提供商,在 iis 设置中设置 Load user profile=true

【讨论】:

    猜你喜欢
    • 2018-04-03
    • 1970-01-01
    • 2018-08-29
    • 1970-01-01
    • 2018-03-30
    • 2019-04-30
    • 2021-04-16
    • 2018-09-29
    • 1970-01-01
    相关资源
    最近更新 更多