我有一個asp.net web應用程序,我想在用戶電腦中的文本文件中啓動會話時存儲用戶信息。爲此我使用Global.asax
和它的void Session_Start()
方法。但是當客戶端通過局域網訪問我的頁面時,文本文件不會在我的電腦中創建。只有當我訪問我的頁面時,該文件纔會創建。當客戶端通過局域網訪問我的站點時,我需要我的用戶名,MAC地址,用戶訪問的頁面,會話開始時間,會話結束時間等。我是asp.net的初學者。所以任何幫助將不勝感激。Global.asax中的void Session_Start()方法不適用於通過局域網的客戶端
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您無法通過HTTP獲取MAC地址。我想你可以得到客戶端的局域網IP地址,然後[ARP](http://technet.microsoft.com/en-us/library/cc961394.aspx)[it](http://stackoverflow.com/questions/ 1148778/how-do-i-access-arp-protocol-information-through-net),假設兩者之間沒有網關。順便說一句,上面的'StreamWriter'似乎是一個問題。 – StuartLC
當客戶端通過局域網訪問頁面時,是否可以在Session_Start中設置斷點,開始調試,然後驗證當有人訪問您的頁面時,至少會觸發會話啓動方法? – sh1rts
你能給我一個關於如何獲得它的詳細信息嗎?感謝您的回覆。 – Reshad