Es muss darauf hingewiesen werden, dass die startup.cs während des gesamten Lebenszyklus der Anwendung verwendet wird. Zum Beispiel in der Configure-Methode - in der Start up.cs - wir behandeln die Anwendungsfehler.
public void Configure(IApplicationBuilder app, IHostingEnvironment
env, ILoggerFactory loggerFactory)
{
loggerFactory.AddConsole(Configuration.GetSection("Logging"));
loggerFactory.AddDebug();
if (env.IsDevelopment())
{
app.UseBrowserLink();
app.UseDeveloperExceptionPage();
app.UseDatabaseErrorPage();
}
else
{
app.UseExceptionHandler(errorApp =>
{
errorApp.Run(async context =>
{
context.Response.StatusCode = 500;
var error = context.Features.Get<IExceptionHandlerFeature>();
if (error != null)
{
Exception ex = error.Error;
var theUser = context.User.Identity.Name;
//send email with user name
//do somehting
}
});
});
}
//part omitted for simplicity
}
Das klingt nicht wie etwas, das praktisch ist:
Sie können Benutzer Informationen aus dem HTTP-Kontext wie folgt retrive. Warum in aller Welt brauchen Sie das, zusätzlich - warum gehen Sie davon aus, dass jemand eingeloggt ist? In der 'Startup.cs' initialisiert der Server buchstäblich Ihre zu bedienende Anwendung, mit der Begründung, dass es keinen" eingeloggten "Benutzer gibt, da dies annehmen würde, dass die App bereits einen Login-Bildschirm ausgegeben hat - was" startup.cs "bedeutet 'lief früher. –
Ich stimme @DavidPine zu und möchte hinzufügen, dass es scheint, dass Sie wenig bis keine Forschung getan haben, bevor Sie diese Frage stellen. – Brad
Zustimmen Sie mit @DavidPine und Brad Aber meine Anforderung ist, muss ich den Benutzernamen erfassen, wenn der Benutzer auf die Anwendung zugreifen. Anwendung verwendet Windows-Authentifizierung. daher gibt es keine Login-Seite. Der Benutzer kann direkt zu jeder Seite der Anwendung gehen, die die URL verwendet (er kann nicht direkt auf der Seite nach Hause kommen). Die allgemeine Seite, die ausgeführt wird, wenn auf die Anwendung in startup.cs zugegriffen wird, daher dachte ich, sie zu verwenden. – Vijay