フォーム認証でサイトに約100人以上のユーザーがログオンしている環境で、HttpContext.Current.User.Identity.Nameを呼び出すと、 は正しくログオンしたユーザーを返します。Issue with HttpContext.Current.User.Identity.Name
ただし、間違ったユーザーフルネーム情報が返されている時間の10%。 テストマシンでこのような問題が発生したことはありません。私はテストマシン上で多くのユーザーと同じ環境を再現することはできません。
このアプリのロジック:
1)ユーザーが一致する、ユーザーが偽 FormsAuthentication.RedirectFromLoginPage(ユーザー名)
経由で認証された場合の情報は、SQL DBの呼び出しを介して検索され、ユーザ名を入力して渡します私はすべてのページに隠されたフィールド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)に、ユーザの訪問をユーザーの完全な名前を入れてリダイレクトした後
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)、彼/ Hマスターページにあるラベルの内側に表示されます
lblUserName.Text = HttpUtility.HtmlDecode("Hello " + userFullName.Value);
これはほぼ常に動作します。いつも から失敗する可能性があるアイデアはありますか?
'GetCurrentUserFullName()'メソッドのコードを表示してください。 – tvanfosson
間違った情報をどういう意味ですか?誰かの名前ですか?それは空白ですか? – Aliostad
変数userFullNameはどのように宣言されていますか? –