Ich schreibe aus einer ASP.NET-Webanwendung in das Anwendungsereignisprotokoll. Wie kann ich das Feld "Benutzer" des Protokolleintrags ausfüllen?ASP.NET-Ereignisprotokoll: Feld "Benutzer" ausfüllen?
Antwort
Der Benutzer, der im Ereignisprotokolleintrag aufgezeichnet wird, ist der Benutzer, der den Thread (aus Sicherheitsgründen) zum Zeitpunkt des Ereignisprotokollierungsaufrufs "besitzt". In einer ASP.Net-Anwendung (standardmäßig) ist dies das Konto, unter dem ASP.Net läuft.
Sie können ändern, welcher Benutzer ein Thread unter Verwendung von Windows-Identitätswechsel ausgeführt wird. Ein Beispiel für die Frage auf SO finden Sie unter:
Dies ist ein nicht-trivialer Bereich, und kein Fall von einfach Benutzerdaten an die Ereignisprotokollierung Anruf zu liefern.
Jede Erklärung dafür, warum ich sehen könnte " N/A "im Feld Benutzer aller Einträge, die von meiner ASP.NET-Webanwendung erstellt wurden (ohne Identitätswechsel)? – lance
Der Benutzer wird als "N/V" angezeigt, wenn der Thread unter dem Systemkonto ausgeführt wird. –
Ich verstehe. Als ich den "N/A" -Wert sah, dachte ich, ich könnte einen freien Textwert in dieses Feld schreiben (wenn ich nur wüsste wie). Als ich die Duplikatsfrage gelesen habe, auf die Zhaph uns oben verwiesen hat, sehe ich, dass es ein tatsächlicher Benutzer auf der Box sein muss (was jetzt Sinn macht). – lance
Ich griff den Benutzernamen von Asp.net Profil. Dann übergab ich es in die Methode. Hier habe ich es in Global.asax verwendet, aber der gleiche Prinzip sollte anderswo funktionieren.
String username = User.Identity.Name;
String pageRequested = ((HttpApplication)sender).Request.Path;
error = Server.GetLastError().GetBaseException();
String message = "ERROR MESSAGE: " + error.Message +
"\nINNER EXCEPTION: " + error.InnerException +
"\nSOURCE: " + error.Source +
"\nFORM: " + Request.Form.ToString() +
"\nQUERYSTRING: " + Request.QueryString.ToString() +
"\nTARGETSITE: " + error.TargetSite +
"\nSTACKTRACE: " + error.StackTrace +
"\nNCLWEB USERNAME: " + username +
"\nDATESTAMP: " + DateTime.Now;
System.Diagnostics.EventLog.WriteEntry("NCLWeb", message, System.Diagnostics.EventLogEntryType.Error);
Dies füllt das Feld Benutzer nicht? Fehle ich etwas? – lance
Dadurch wird der Benutzername zum Nachrichtentext hinzugefügt, aber das Feld "Benutzer" ** im Ereignisprotokoll wird nicht ausgefüllt. –
@lance - Nein, du verpasst nichts, ich habe die Frage missverstanden. Obwohl ich jetzt die Methode anschaue, scheint es keinen Weg zu geben, den Benutzernamen als Parameter zu übergeben. – MAW74656
- 1. Angular 2 automatisches Ausfüllen
- 2. Zugriff auf Formularelemente Felder ausfüllen?
- 3. Daten ausfüllen
- 4. Textfeld automatisch ausfüllen asp.net
- 5. Wie Textfelder 100% horizontal ausfüllen
- 6. XPS-Formular ausfüllen
- 7. Formular ausfüllen Problem
- 8. NSImageView Bildaspekt ausfüllen?
- 9. Ausfüllen mit xlsxwriter
- 10. JLabels, die zufällig ausfüllen
- 11. ListBox nicht ausfüllen
- 12. Kann ein Django-Modell automatisch den aktuellen authentifizierten Benutzer über die Admin-Oberfläche ausfüllen?
- 13. Formular mit Facebook-Daten ausfüllen
- 14. Benutzerdefiniertes Feld für angemeldeten Benutzer anzeigen
- 15. django Auth Benutzer Kürzen E-Mail-Feld
- 16. Django/Benutzer Zugriff in ManyToMany Feld
- 17. Einfache Code-Anwendung Login-Formular ausfüllen
- 18. Formular aus PHP-Skript ausfüllen und senden
- 19. Xamarin - Schaltfläche nicht aktiviert nach dem Ausfüllen der EditText Felder
- 20. Farbe auf Dreieck mit Mausklick ausfüllen
- 21. Vorhinein ausfüllen eine Sharepoint neues Element Form
- 22. Ausfüllen der Chrome-Erweiterung Symbol
- 23. Ausfüllen eines Formulars clientseitig [Javascript]
- 24. Jquery UI-Registerkarten automatisch ausfüllen
- 25. Dropdown-Menü mit Datenbankinformationen ausfüllen?
- 26. Ein vlookup in VBA ausfüllen
- 27. Android-Anwendung zum Ausfüllen eines PDF-Formulars
- 28. Wie erzwinge ich, dass neue Benutzer ihre Benutzer-Seite ausfüllen, wenn sie ein neues Konto in einem MediaWiki-Wiki erstellen?
- 29. ein CC-Feld Füllen von Feld
- 30. Wie kann ich einen Benutzer Profilteile bei der Registrierung ausfüllen lassen? (Mit Providern)
dieses Duplikat gefunden: http://stackoverflow.com/questions/147307/net-how-to-set-user-information-in-an-eventlog-entry –