Die void Session_Start () - Methode in der Global.asax nicht funktioniert für den client-über lan
Habe ich eine asp.net web-Anwendung, wo ich will, um Benutzerinformationen speichern, wenn Sie eine Sitzung starten in eine text-Datei in meinem pc. Für die, die ich benutze Global.asax
und seine void Session_Start()
Methode. Aber wenn ein client Zugriff auf meine Seite über lan, die Textdatei wird nicht erstellt auf meinen pc. Nur, wenn ich Besuch meine Seite die Datei erstellt. Ich will, dass mein Benutzer-name, mac-Adresse, die Seiten, die der Benutzer besucht, session-Startzeit, Ende der Sitzung Zeit, in eine text-Datei in meinem pc, wenn die Kunden den Zugriff auf meinen Standort über lan. Ich bin ein Anfänger in asp.net. So dass jede Hilfe wird sehr geschätzt werden.
void Session_Start(object sender, EventArgs e)
{
string txtFilePath = @"C:\LogInfo.txt";
StreamWriter w //???
string hostName =
System.Net.Dns.GetHostEntry(Request.ServerVariables["REMOTE_HOST"]).HostName;
UserInfo userObj = new UserInfo();
string macAddress = userObj.GetMACAddress();
HttpContext context = HttpContext.Current;
string baseURL = context.Request.Url.AbsolutePath;
w = File.CreateText(txtFilePath);//File.AppendText(txtFilePath);
w.Write("Start Log Entry: ");
w.WriteLine("{0} {1}", DateTime.Now.ToLongTimeString(),
DateTime.Now.ToLongDateString());
w.WriteLine("\n");
w.WriteLine("User: {0}", hostName);
w.WriteLine("\nMAC Address: {0}", macAddress);
w.WriteLine("-------------------------------\r\n");
w.Flush();
w.Close();
}
- AFAIK kannst du nicht eine MAC-Adresse über HTTP. Ich denke, man könnte das Client-LAN-IP-Adresse und dann ARP itwird, vorausgesetzt, es ist kein gateway dazwischen. BTW scheint ein Problem mit
StreamWriter
oben. - Wenn ein client auf die Seite zugreift über LAN.. können Sie einen Haltepunkt festlegen Session_Start, beginnen Sie das Debuggen, und dann stellen Sie sicher, dass der session-start-Methode ist mindestens getroffen, wenn jemand auf Ihre Seite zugreift ?
- Können Sie mir eine detaillierte information über, wie bekomme ich es funktioniert? Vielen Dank für Ihre Antwort.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie verwenden :
Beachten Sie die time-session gestartet SESSION_START in und die Zeit, die Sitzung endete im SESSION_END Methoden des globalen.asax
Hinsichtlich der Seiten -
In jeder Seite, die beim Zugriff auf, können Sie fügen Sie code, die wahrscheinlich in eine Basis-Seite, zu schreiben in die Datei, die Seite zugegriffen wurde. Wie von mehreren Seiten zugegriffen werden kann, die in einer Sitzung.
Also, stellen Sie sicher, es gibt genügend Rechte zum schreiben der Datei auf Ihrem Rechner. Da, Sie haben Rechte, Sie sind in der Lage zu schreiben, ohne Probleme. Sie müssen die Identität Ihrer Nutzer-Konto, oder ein Konto für alle Benutzer, um zu schreiben in Dateien von Ihrem Computer.
Links zum Identitätswechsel :
http://msdn.microsoft.com/en-us/library/xh507fc5.ASPX
http://www.pcreview.co.uk/forums/impersonate-user-asp-net-access-network-file-share-t1343830.html
Bitte beachten Sie auch, müssen Sie zu imitieren, nur um Zugriff auf eine bestimmte Ressource. Nicht der Benutzer Zugriff auf das system als ganzes, wie Sie möchten, um die Aufnahme seiner Daten.
Bezüglich der mac-Adresse - unter der folgenden Url -
http://www.nullskull.com/a/510/get-mac-address-of-any-machine-from-ip.aspx
Happy coding!!!