Aspnet Core 身份管理总是让我回到登录页面
Posted
技术标签:
【中文标题】Aspnet Core 身份管理总是让我回到登录页面【英文标题】:Aspnet Core Identity management always returning me to the login page 【发布时间】:2021-04-19 23:57:22 【问题描述】:在我的应用程序中,我的帐户管理页面无法正常工作,我正在尝试转到以下内容。
https://localhost:5001/Identity/Account/Manage
根据我的脚手架,身份管理页面应该在哪里,我已经更改了代码以确保它指向我的 ApplicaitonUser 类,但由于某种原因,当我访问该页面时,即使我访问该页面,它也会让我回到登录状态已使用登录页面登录。
我已经这样配置了我的启动类
services.AddIdentity<ApplicationUser, IdentityRole>(config =>
config.SignIn.RequireConfirmedEmail = true;
config.Tokens.AuthenticatorTokenProvider = TokenOptions.DefaultAuthenticatorProvider;
config.User.RequireUniqueEmail = true;
)
.AddRoles<IdentityRole>()
.AddEntityFrameworkStores<MSFSAddonDBContext>()
.AddDefaultTokenProviders()
.AddDefaultUI()
.AddRoles<IdentityRole>();
services.AddScoped<IUserClaimsPrincipalFactory<ApplicationUser>,
AdditionalUserClaimsPrincipalFactory>();
services.AddSession(opts =>
opts.Cookie.IsEssential = false; // make the session cookie Essential
);
确保禁用 cookie 警告,因为我相信如果尚未设置它可能会导致问题。我还使用以下代码启用了 MFA。
services.ConfigureApplicationCookie(config =>
config.Cookie.Name = "Identity.Cookie";
config.LoginPath = "/Identity/Account/Login";
);
services.AddAuthorization(options =>
options.AddPolicy("TwoFactorEnabled",
x => x.RequireClaim("amr", "mfa")));
services.AddAntiforgery(o => o.HeaderName = "XSRF-TOKEN");
cookie 是在调试选项卡的边缘创建的,所以我不知道为什么我的代码拒绝进入管理页面,我正在尝试按照此处的指南进行操作。
https://docs.microsoft.com/en-us/aspnet/core/security/authentication/mfa?view=aspnetcore-5.0
为了完成这里是我的配置设置
app.UseHttpsRedirection();
app.UseStaticFiles();
app.UseRouting();
app.UseAuthorization();
app.UseAuthentication();
app.UseEndpoints(endpoints =>
endpoints.MapControllerRoute(
name: "areas",
pattern: "area:exists/controller=Home/action=Index/id?");
endpoints.MapControllerRoute(
name: "default",
pattern: "controller=Home/action=Index/id?");
endpoints.MapRazorPages();
);
【问题讨论】:
【参考方案1】:我的问题是我的 AddDefaultUI 覆盖了路径,因此从未找到该页面。这是 asp.net core 5。
【讨论】:
以上是关于Aspnet Core 身份管理总是让我回到登录页面的主要内容,如果未能解决你的问题,请参考以下文章
AspNet Identity Core - 登录时的自定义声明
无法识别角色授权 - 带有 IdentityServer4 Cookie/Oidc 身份验证的 ASPNET CORE 5
AspNet Core 脚手架应用程序中的登录和注册页面在哪里?