Web アプリケーションを作成し、IIS (6.1) にアップロードしましたが、IIS にアップロードしたため、問題に直面しています。アプリケーションでは、ユーザーの認証は AD (Active Directory) グループを通じて行われます。ユーザー「A」がアプリケーションにログインすると正常に動作し、ホームページに「Welcome User : A」のようなウェルカム メッセージが表示されますが、ユーザー「B」がアプリケーションにログインすると問題が発生します。ユーザー「B」がログインし、ユーザー「A」がページを更新すると、ユーザー「A」のホームページに「Welcome User : B」のようなウェルカム メッセージが表示されます。両方のユーザーが物理的に異なるマシン上にあることに注意してください。
誰でもその問題で私を助けることができますか?
これが私のコードです: ログインページが読み込まれると、次のコードが実行されます:
protected void Page_Load(object sender, EventArgs e)
{
_txtPassword.Focus();
lb_errormsg.Visible = false;
try
{
if (!Page.IsPostBack)
{
LogHelper.Logger.Info("Load Login Page.");
LogHelper.Logger.Info("Get Employee ID and Domain into Variables.");
_txtUserid.Text = User.Identity.Name;
string[] str = _txtUserid.Text.Replace(@"\", "-").Split('-');
configureUser.EmpID = str[1];
configureUser.EmpDomain = str[0];
LogHelper.Logger.Info("Set Employee ID and Domain into variables complete.");
LogHelper.Logger.Info("Try to Get ConnectionString.");
//Set Connection String...
con_string.Connectionstring = con_string.GetConnectionString();
LogHelper.Logger.Info("Get ConnectionString complete.");
}
}
catch (Exception ex)
{
}
}
ページの読み込み時に、テキスト ボックスに従業員 ID が自動的に入力され、ユーザーにパスワードを要求します。「configureUser.EmpID」変数に従業員 ID を設定しました。
public void _FillStartUpInformation()
{
LogHelper.Logger.Info("Attempt to fill list of BU's");
// Fill Workstream DataTable...
configureUser.BUDT = businessUser.CPOGetBUs(con_string.Connectionstring);
LogHelper.Logger.Info("Fill list of BU's successfully.");
LogHelper.Logger.Info("Attempt to fill Employee Datatable.");
// Fill Employee DataTable..
configureUser.EmployeeDT
= businessUser.CPOGetAllEmployees(con_string.Connectionstring);
LogHelper.Logger.Info("Fill Employee Datatable successfully.");
LogHelper.Logger.Info("Attempt to fill employee details into variables.");
// Fill Employee Details Into Variables...
DataRow[] dr
= configureUser.EmployeeDT.Select("EmpID = '" + configureUser.EmpID + "'");
configureUser.BU
= configureUser.BUDT.Select
("BUID = '" + dr[0]["BU"].ToString() + "'")[0]["BU"].ToString();
configureUser.EmpName = dr[0]["EmpName"].ToString();
configureUser.Email = dr[0]["EmailID"].ToString();
if (dr[0]["OBU"].ToString().Contains(','))
{
configureUser.EmpOBU = new string[dr[0]["OBU"].ToString().Split(',').Count()];
configureUser.EmpOBU = dr[0]["OBU"].ToString().Split(',');
}
else
{
configureUser.EmpOBU = new string[1];
configureUser.EmpOBU[0] = dr[0]["OBU"].ToString();
}
configureUser.ManagerName = dr[0]["ManagersName"].ToString();
configureUser.ManagerEmail
= configureUser.EmployeeDT.Select
("EmpName = '" + configureUser.ManagerName + "'")[0]["EmailID"].ToString();
configureUser.BUID = dr[0]["BU"].ToString();
configureUser.IsReviewer = Convert.ToBoolean(dr[0]["Reviewer"]);
LogHelper.Logger.Info("Fill employee details into variables completed.");
LogHelper.Logger.Info("Attempt to fill OBU Datatable.");
// Fill Subteam DataTable...
configureUser.OBUDT
= businessUser.CPOGetOBUs(con_string.Connectionstring, configureUser.BUID);
LogHelper.Logger.Info("Fill OBU Datatable completed.");
LogHelper.Logger.Info("Attempt to fill Product Datatable.");
// Fill Product DataTable...
configureUser.ProductDT
= businessUser.CPOGetProducts(con_string.Connectionstring, configureUser.BUID);
LogHelper.Logger.Info("Fill Product Datatable completed.");
LogHelper.Logger.Info("Attempt to fill Checkpoints definition Datatable.");
//Fill Checkpoints Definitions....
configureUser.CheckpointsDefinition
= businessUser.CPOGet_QCCheckPoints_Definition(con_string.Connectionstring);
LogHelper.Logger.Info("Fill Checkpoints definition Datatable completed.");
LogHelper.Logger.Info("Attempt to fill Process Datatable.");
// Fill Process DataTable...
configureUser.ProcessDT
= businessUser.CPOGetProcesses(con_string.Connectionstring, configureUser.BUID);
LogHelper.Logger.Info("Fill Process Datatable completed.");
LogHelper.Logger.Info("Attempt to fill Process Hierarchy Datatable.");
// Fill Process Hierarchy Details...
configureUser.ProcessHierarchyDT
= businessUser.CPOGetProcessHierarchy
(con_string.Connectionstring, configureUser.BUID);
LogHelper.Logger.Info("Datatable filled successfully.");
}
認証後、アプリケーション全体で使用されるすべての共通データを、静的タイプの DataTables と Variables に入力します。