Trong môi trường có khoảng 100 người dùng đang đăng nhập vào trang web có xác thực biểu mẫu , hãy gọi HttpContext.Current.User.Identity.Name trả về người dùng đã đăng nhập chính xác .Vấn đề với HttpContext.Current.User.Identity.Name
Tuy nhiên, 10% thời gian người dùng sai Thông tin tên đầy đủ đang được trả lại. Tôi chưa bao giờ gặp vấn đề như vậy trên máy thử nghiệm của mình, nó chỉ xảy ra trong quá trình sản xuất. Tôi không thể tạo lại cùng một môi trường với nhiều người dùng trên máy thử nghiệm của mình.
Logic của ứng dụng này:
1) dùng nhập tên đăng nhập và vượt qua, thông tin được nhìn lên qua SQL DB cuộc gọi, nếu trận đấu, người dùng được xác thực thông qua FormsAuthentication.RedirectFromLoginPage (username, false)
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) Sau khi chuyển hướng tôi đặt người dùng đầy đủ Tên thành lĩnh vực ẩn
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) Trên tất cả các trang người dùng truy cập, ông/h thông tin er được hiển thị bên trong Nhãn nằm trên trang chính
lblUserName.Text = HttpUtility.HtmlDecode("Hello " + userFullName.Value);
Điều này hầu như luôn hoạt động. Bất kỳ ý tưởng nào tại sao nó có thể bị lỗi từ theo thời gian?
Vui lòng hiển thị mã cho phương thức 'GetCurrentUserFullName()' của bạn. – tvanfosson
Bạn có ý gì bởi thông tin sai? Có phải tên của người khác không? Nó có trống không? – Aliostad
Biến userFullName được khai báo như thế nào? –