Ich betreibe HangFire in meiner MVC Web-App, aber wenn ich zu http://MyApp/hangfire zu navigieren versuchen, es leitet mich auf meine App-Login-Seite, als ob ich nicht angemeldet bin.Warum ist erforderlich Hangfire Authentifizierung Armaturenbrett
I keine Voraussetzungen für die Autorisierung explizit konfiguriert haben ... z Ich hatte das unten in der web.config, habe es dann aber aus versucht, um das zum laufen zu bringen.
<location path="hangfire">
<system.web>
<authorization>
<allow roles="Administrator" />
<deny users="*" />
</authorization>
</system.web>
In der Theorie ist das, was ich wollen würde, und wenn ich in meine Haupt-Web-Anwendung anmelden, werde ich mit einer Administrator
Rolle angemeldet werden, so sollte diese Regel arbeiten.
Aber ob ich das in der web.config konfiguriert oder nicht, wenn ich zu http://MyApp/hangfire zu navigieren versuchen, es mir meine apps umleitet Login-Seite, wie in der web.config konfiguriert:
<authentication mode="Forms">
<forms loginUrl="~/Account/Login" timeout="960" />
</authentication>
Es tut dies nicht auf meinem lokalen Rechner, nur wenn ich es auf meinem Host veröffentliche. Erkennt HangFire nicht den Authentifizierungscookie, den meine Haupt-App bei der Anmeldung bereitstellt? Ich dachte im Allgemeinen, die Hangfire App benötigt keine Authentifizierung, also welche andere Konfiguration könnte das denken?
UPDATE 1:
habe ich die Berechtigungs Filter pro der hangfire docs, aber das gleiche passiert. Hier ist mein Code in Startup.cs:
using Hangfire;
using Hangfire.Logging;
using Hangfire.Dashboard;
using Hangfire.SqlServer;
using Microsoft.Owin;
using OTIS.Web.AppCode;
using OTISScheduler.AppServ;
using Owin;
using System.Web.Security;
[assembly: OwinStartup(typeof(OTIS.Web.App_Start.Startup))]
namespace OTIS.Web.App_Start
{
public class Startup
{
public void Configuration(IAppBuilder app) {
app.UseHangfire(config => {
config.UseSqlServerStorage("DefaultConnection");
config.UseServer();
//Dashboard authorization
config.UseAuthorizationFilters(new AuthorizationFilter
{
Users = "USERA", // allow only specified users (comma delimited list)
Roles = "Account Administrator, Administrator" // allow only specified roles(comma delimited list)
});
});
LogProvider.SetCurrentLogProvider(new StubLogProviderForHangfire());
GlobalJobFilters.Filters.Add(new AutomaticRetryAttribute { Attempts = 0 });
var scheduleTasksInitializer = new ScheduleTasksInitializer();
scheduleTasksInitializer.ScheduleTasks();
}
}
}
UPDATE 2:
Per die mehr detailed instructions showing basic authentication, ich habe auch versucht, dieses ... noch keine luck..redirects mich zu meiner App-Login-Seite.
config.UseAuthorizationFilters(
new BasicAuthAuthorizationFilter(
new BasicAuthAuthorizationFilterOptions
{
// Require secure connection for dashboard
RequireSsl = false,
SslRedirect = false,
// Case sensitive login checking
LoginCaseSensitive = true,
// Users
Users = new[]
{
new BasicAuthAuthorizationUser
{
Login = "MyLogin",
// Password as plain text
PasswordClear = "MyPwd"
}
}
}));
Danke für den Input, aber ich habe diesen Code in und nach wie vor das gleiche Ergebnis. Ich verwende nicht Autofac oder OAuth ... nur grundlegende asp.net Grundmitgliedschaft. Irgendwelche anderen Ideen? –
Um alle Dokumente für das Dashboard nicht im Moment arbeiten, hoffe, dass das nur Temp Problem ist. Könnten Sie bitte den Link aktualisieren? – cpoDesign