C# ASP.NET核心标识不会重定向到正确的登录页

C# ASP.NET核心标识不会重定向到正确的登录页,c#,asp.net-core-identity,asp.net-core-2.2,asp.net-core-configuration,C#,Asp.net Core Identity,Asp.net Core 2.2,Asp.net Core Configuration,按此方式配置,它不工作 services .AddAuthentication(CookieAuthenticationDefaults.AuthenticationScheme) .AddCookie(options => { options.ExpireTimeSpan = TimeSpan.FromMinutes(5); options.LoginPath = $"/logon"

按此方式配置,它不工作

    services
        .AddAuthentication(CookieAuthenticationDefaults.AuthenticationScheme)
        .AddCookie(options =>
        {
            options.ExpireTimeSpan = TimeSpan.FromMinutes(5);

            options.LoginPath = $"/logon";
            options.LogoutPath = $"/logoff";
            options.AccessDeniedPath = $"/accessdenied";
            options.SlidingExpiration = true;
        })
以这种方式配置它的工作方式:

    services.ConfigureApplicationCookie(options =>
    {
        options.Cookie.Name = "Caldr.Auth";
        options.LoginPath = $"/logon";
        options.LogoutPath = $"/logoff";
        options.AccessDeniedPath = $"/accessdenied";
    });

    services
        .AddAuthentication(CookieAuthenticationDefaults.AuthenticationScheme)
我希望两人都有同样的行为。显然不是。Bug或我不知道如何配置它?:-)


任何想法。

在发布我的问题时,我也配置/添加了身份框架。因此,它可能是多种因素的混合,可能无法正常工作

工作解决办法:

配置:

var authenticationBuilder = services.AddAuthentication(CookieAuthenticationDefaults.AuthenticationScheme)
    .AddCookie(options =>
    {
        options.LoginPath = $"/logon";
        options.LogoutPath = $"/logoff";
        options.AccessDeniedPath = $"/accessdenied";
    });
ConfigureSocialLogins(authenticationBuilder);
实际登录(即通过写入cookie)

专用异步任务签名用户(AppUser AppUser)
{
var索赔=新列表
{
新索赔(ClaimTypes.NameIdentifier、appUser.Email),
新索赔(ClaimTypes.Name、appUser.Displayname??appUser.Email),
新索赔(ClaimTypes.Email、appUser.Email),
};
var claimsIdentity=新的claimsIdentity(索赔、CookieAuthenticationDefaults.AuthenticationScheme);
var claimsPrincipal=新的claimsPrincipal(索赔实体);
等待HttpContext.SignInAsync(CookieAuthenticationDefaults.AuthenticationScheme,claimsPrincipal,new AuthenticationProperties());
}

注意CookieAuthenticationDefaults.AuthenticationScheme的所有用法。

在发布我的问题时,我也配置/添加了identity framework。因此,它可能是多种因素的混合,可能无法正常工作

工作解决办法:

配置:

var authenticationBuilder = services.AddAuthentication(CookieAuthenticationDefaults.AuthenticationScheme)
    .AddCookie(options =>
    {
        options.LoginPath = $"/logon";
        options.LogoutPath = $"/logoff";
        options.AccessDeniedPath = $"/accessdenied";
    });
ConfigureSocialLogins(authenticationBuilder);
实际登录(即通过写入cookie)

专用异步任务签名用户(AppUser AppUser)
{
var索赔=新列表
{
新索赔(ClaimTypes.NameIdentifier、appUser.Email),
新索赔(ClaimTypes.Name、appUser.Displayname??appUser.Email),
新索赔(ClaimTypes.Email、appUser.Email),
};
var claimsIdentity=新的claimsIdentity(索赔、CookieAuthenticationDefaults.AuthenticationScheme);
var claimsPrincipal=新的claimsPrincipal(索赔实体);
等待HttpContext.SignInAsync(CookieAuthenticationDefaults.AuthenticationScheme,claimsPrincipal,new AuthenticationProperties());
}
注意CookieAuthenticationDefaults.AuthenticationScheme的所有用法