在約100多名用戶登錄到具有 表單身份驗證的站點的環境中,調用HttpContext.Current.User.Identity.Name 會返回正確登錄的用戶。問題與HttpContext.Current.User.Identity.Name
但是,有10%的時間錯誤的用戶全名信息正在返回。 我的測試機器上從來沒有這樣的問題,它只發生在生產中。我無法在測試機器上爲許多用戶重新創建相同的環境。
此應用的邏輯:
1)用戶輸入用戶名和傳遞,信息經由SQL DB呼叫擡頭,如果匹配,用戶經由 FormsAuthentication.RedirectFromLoginPage(用戶名,假)
認證FormsAuthentication.SetAuthCookie(user.SYS_Users_ID.ToString(), false);
if (Request["ReturnURL"] == null)
FormsAuthentication.RedirectFromLoginPage(user.SYS_Users_ID.ToString(), false);
else
Response.Redirect("/" + SysConfig.ApplicationName + appConfig.DefaultPages.DefaultPage);
2)重定向後,我把用戶的全名進藏實地
if (!IsPostBack)
userFullName.Value = Helper.GetCurrentUserFullName();
...
public static string GetCurrentUserFullName()
{
string _userFullName = string.Empty;
try
{
_userFullName = new AgrotMasofim.DAL.Users.Users().GetUserFullName(GetCurrentUserID());
}
catch (Exception ex)
{
Logs.WriteToFileLog(string.Empty,ex);
}
return _userFullName;
}
public static Decimal GetCurrentUserID()
{
Decimal _userID = 0;
if (HttpContext.Current.User != null)
{
try
{
_userID = Convert.ToDecimal(HttpContext.Current.User.Identity.Name);
}
catch (Exception ex)
{
Logs.WriteToFileLog(string.Empty, ex);
}
}
return _userID;
}
3)上的所有網頁的用戶訪問,他/小時呃信息的內部標籤,該標籤是母版頁
lblUserName.Text = HttpUtility.HtmlDecode("Hello " + userFullName.Value);
上顯示這個工程幾乎所有的時間。任何想法爲什麼它可能會從 不及格?
請向我們展示您的'GetCurrentUserFullName()'方法的代碼。 – tvanfosson 2012-02-26 13:33:18
你的錯誤信息是什麼意思?這是別人的名字嗎?它是空白的嗎? – Aliostad 2012-02-26 13:34:00
如何聲明變量userFullName? – 2012-02-26 13:34:11