AbpMvcAuthentication
属性,访问Home时我想要的是,重定向到登录页面。当我去家时,它会显示一个空白页面,而不是主页,也不会显示登录页面。它似乎验证失败,但没有重定向到登录页面。
我的问题是:如何让AbpMvcAuthentication
知道在身份验证失败时要重定向哪个页面?
答案 0 :(得分:1)
*.Web.Host项目没有登录页面,redirect to Swagger就是。
您应该将启动项目更改为 * .Web.Mvc :
如果您只想登录,请考虑使用浏览器控制台中的Swagger authentication helpers:
abp.swagger.login();
要回答您的问题,您可以通过还原提交92b6270
重新启用身份验证重定向:
// What it was (and what you want)
services.AddAuthentication()
.AddJwtBearer(options =>
// What it is
services.AddAuthentication(options =>
{
options.DefaultAuthenticateScheme = "JwtBearer";
options.DefaultChallengeScheme = "JwtBearer";
}).AddJwtBearer("JwtBearer", options =>
<强> Startup.cs 强>:
app.UseAuthentication();
app.UseJwtTokenMiddleware(); // Add this back
app.UseAbpRequestLocalization();
要明确的是,这会重定向到空白页面,因为没有 * .Web.Host 项目的登录页面。
这与ABP 401 response from API instead of redirect中的预期行为相反。
另外,您可以configure login path for redirect:
您可以在Startup.cs中配置:
IdentityRegistrar.Register(services); AuthConfigurer.Configure(services, _appConfiguration); // Add this line: services.ConfigureApplicationCookie(options => options.LoginPath = "/Admin/Login");
相关文档:https://docs.microsoft.com/en-us/aspnet/core/migration/1x-to-2x/identity-2x