代码之家  ›  专栏  ›  技术社区  ›  Judah Gabriel Himango

AspNet核心标识-未在生产中设置cookie

  •  10
  • Judah Gabriel Himango  · 技术社区  · 8 年前

    我有一个。NET核心2网络应用程序,我想使用ASP。NET身份验证我的用户。在…上NET Core 1。x、 我的代码运行良好。

    未在生产中设置身份验证cookie。

    我的创业。cs代码如下所示:

    public void ConfigureServices(IServiceCollection services)
    {
       services.AddIdentity<AppUser, RavenDB.IdentityRole>()
             .AddDefaultTokenProviders(); 
    
       ...
    }
    
    public void Configure(IApplicationBuilder app, IHostingEnvironment env)
    {
       ...
    
       app.UseAuthentication();
    }
    

    要登录,我的代码如下所示:

    public async Task<ActionResult> SignIn(...)
    {
       var user = ...; // Load the User from the database.
       await this.signInManager.SignInAsync(user, isPersistent: true);
    
       ...
    }
    

    3 回复  |  直到 8 年前
        1
  •  20
  •   Judah Gabriel Himango    8 年前

    当我发布到HTTPS站点后,cookie又开始工作了。

    它在本地工作的原因是我在本地使用HTTPS。

        2
  •  3
  •   aMerkuri    8 年前


    options.Cookie.SameSite = SameSiteMode.None;
    https://github.com/aspnet/Docs/blob/master/aspnetcore/security/authentication/cookie.md
    从默认值(Lax)更改为无为我修复了它。

        3
  •  0
  •   israel    5 年前

    我也有类似的问题。在启动过程中。cs文件,我必须更改

    app.UseCookiePolicy(new CookiePolicyOptions
    {
         Secure = CookieSecurePolicy.Always
    });
    

     app.UseCookiePolicy(new CookiePolicyOptions
     {
         Secure = CookieSecurePolicy.SameAsRequest
     });
    

    这使得cookie身份验证可以在http和https上工作。

    推荐文章