2012-07-27 74 views
0

我真的很抱歉不清楚的問題標題,但我自己有點困惑。獲取訪問該網站的最後一個人的用戶名

餘米運行IIS和它顯示誰是當前登錄用戶的用戶名上我的網站。我的網站託管在本地服務器上和不同的用戶同時訪問。

問題

每次用戶打開它顯示誰最近剛剛訪問過該網站以前的用戶的用戶名的站點時。

CODE

這是我使用我的Global.asax文件中的代碼。

 void Session_Start(object sender, EventArgs e) 
    { 
     // Code that runs when a new session is started   
     // code to get the current user name when running from IIS 
     System.Security.Principal.IPrincipal _User; 
     _User = System.Web.HttpContext.Current.User; 
     System.Security.Principal.IIdentity _Identity; 
     _Identity = _User.Identity; 
     string _Value; 
     _Value = _Identity.Name.Substring(_Identity.Name.IndexOf(@"\") + 1); 

DataTable dtId = CetDatabase.GetEmployeDetails(_Value); 
     if (dtId.Rows.Count > 0) 
     { 
      Session["teamid"] = dtId.Rows[0]["TEAMID"].ToString(); 
      Session["projectid"] = dtId.Rows[0]["PROJECTID"].ToString(); 
      Session["memberid"] = dtId.Rows[0]["MEMBERID"].ToString(); 
      CeteraQMS.Main_Master.projectname = dtId.Rows[0]["PROJECTNAME"].ToString(); 
      CeteraQMS.Main_Master.username = _Value; 
      CeteraQMS.Main_Master.teamname = dtId.Rows[0]["TEAMNAME"].ToString(); 
      Session["role"] = dtId.Rows[0]["MEMBERROLE"].ToString(); 
     } 
     else 
     { 
      Response.Redirect("AccessDenied.aspx"); 
     } 
    } 

我不知道我哪裏出錯了。

在此先感謝 AKHIL

+0

你在用'Session_Start'初始化的'_Value'字符串變量做什麼?你在什麼地方存儲它? – 2012-07-27 07:55:29

+0

當用戶成功登錄並僅打印該名稱時,是否可以將用戶名存儲在會話中? – 2012-07-27 07:56:25

+0

@DarinDimitrov I M的標籤 – akhil 2012-07-27 08:05:51

回答

1

此位置:

CeteraQMS.Main_Master.username = _Value; 

看起來像一個靜態對象上設置屬性。 Main_Master屬性看起來像CeteraQMS類中的靜態屬性(無論這些屬性如何)。正如您所知,靜態對象在應用程序中的所有用戶之間共享。所以不要使用任何靜態對象來存儲特定於當前用戶的狀態。如果你想存儲的用戶名和其他用戶的特定屬性,最好將它們存儲到會話中,你與teamidprojectidmemberidrole值也做了同樣的方式。

+0

非常感謝。你的小費工作。 :) – akhil 2012-07-27 08:57:39

相關問題