ABP Framework version: commercial v 5.1.3 UI type: Angular DB provider: EF Core Tiered (MVC) or Identity Server Separated (Angular): yes
I added Hangfire and HealthCheckUI in HostAPI
app.UseAuthentication();
app.UseHangfireDashboard("/hangfire", new DashboardOptions
{
AsyncAuthorization = new[] { new AbpHangfireAuthorizationFilter(requiredPermissionName: MainCorePermissions.HangfireDashboard.Default) }
});
services.Configure<AbpEndpointRouterOptions>(routerOptions =>
{
routerOptions.EndpointConfigureActions.Add(endpointContext =>
{
endpointContext.Endpoints.MapHealthChecksUI(setupOption)
.RequireAuthorization(MainCorePermissions.HangfireDashboard.Default);
});
});
but it doesn't work because Authorizationfilter faild, i need to know how to authenticate the user to access hangfire and healthCheckUI
6 Answer(s)
-
0
hi
HTTP.API uses **JwtBearer ** for authentication by default.
You can set Hangfire and HealthCheckUI in the Identity Server project.
Or add a Cookies as second authentication scheme. Do not set it as the default authentication scheme.
builder.Services.AddAuthentication() .AddCookie(options => { options.ExpireTimeSpan = TimeSpan.FromMinutes(20); options.SlidingExpiration = true; options.AccessDeniedPath = "/Forbidden/"; });
https://docs.microsoft.com/en-us/aspnet/core/security/authentication/cookie?view=aspnetcore-6.0
-
0
ABP default template has HealthCheckUI project in HTTP.API why I transfer to the Identity Server project?
and How can I add Cookies as a second authentication scheme depending on the Identity Server project?
-
0
You can add Cookies as a second authentication scheme to the HTTP.API project.
https://docs.microsoft.com/en-us/aspnet/core/security/authentication/cookie?view=aspnetcore-6.0
-
0
You can add Cookies as a second authentication scheme to the HTTP.API project.
https://docs.microsoft.com/en-us/aspnet/core/security/authentication/cookie?view=aspnetcore-6.0
Kindly, How can I add Cookies as a second authentication scheme depending on the Identity Server project?
-
0
Create an MVC tiered project, and then refer to
.AddCookie
and.AddOpenIdConnect
in Web project.Do not set it as the default authentication scheme in HTTP.API project. add a middleware to call the cookie authentication
app.UseAuthentication(); app.Use(async (ctx, next) => { if (ctx.User.Identity?.IsAuthenticated != true) { var result = await ctx.AuthenticateAsync("YourCookieAuthenticationScheme); //default is Cookies if (result.Succeeded && result.Principal != null) { ctx.User = result.Principal; } } await next(); }); app.UseHangfireDashboard("/hangfire", new DashboardOptions { AsyncAuthorization = new[] { new AbpHangfireAuthorizationFilter(requiredPermissionName: MainCorePermissions.HangfireDashboard.Default) } });
-
0
thanks @maliming