//由HINTS登入事件 protected void Login() { string HINTSUserID = ""; //使用者帳號 string strTagetPage = ""; //轉移目標網址 //使用者帳號 if (Request.QueryString["UserID"] != null) { HINTSUserID = Request.QueryString["UserID"]; } //轉移目標網址 if (Request.QueryString["TargetPage"] != null) { strTagetPage = Request.QueryString["TargetPage"]; } DataTable dtUser = clsORCSUser.ORCS_User_SELECT_by_UserID(HINTSUserID); //登入條件檢查 DataTable dtUserInfo = clsORCSUser.ORCS_User_SELECT_by_UserID(HINTSUserID); ORCSSession = new ORCSSessionManager(this); ORCSSession.ResetSession(); ORCSSession.IsLogin = true; ORCSSession.UserID = dtUserInfo.Rows[0]["cUserID"].ToString(); ORCSSession.Authority = dtUserInfo.Rows[0]["cAuthority"].ToString(); ORCSSession.TempID = clsEditGroupMember.GetGroupIDByUserIDClassID(ORCSSession.UserID, ORCSSession.GroupID); Response.Redirect(GeTagetPageURL(strTagetPage)); }
//頁面載入前初始化Session protected override void OnPreInit(EventArgs e) { ORCSSession = new ORCSSessionManager(this); ORCSSession.IsLogin = false; ORCSSession.ProcessPage = "ORCS_Login"; base.OnPreInit(e); }
//登入按鈕事件 protected void btLogin_Click(object sender, EventArgs e) { //判斷帳密是否輸入正確 //登入成功 if (clsORCSUser.ORCS_User_CHECK_Login(tbUserID.Text, tbPasswd.Text)) { DataTable dtUserInfo = clsORCSUser.ORCS_User_SELECT_by_UserID(tbUserID.Text); ORCSSession = new ORCSSessionManager(this); ORCSSession.ResetSession(); ORCSSession.IsLogin = true; ORCSSession.UserID = dtUserInfo.Rows[0]["cUserID"].ToString(); ORCSSession.Authority = dtUserInfo.Rows[0]["cAuthority"].ToString(); //檢查系統狀態,若未上課並且身分是學生則無法進入系統首頁 if (CheckSystemState() == "0" && ORCSSession.Authority == "s")//CheckSystemState() == "0" 未上課 { ScriptManager.RegisterClientScriptBlock(UpdatePanel1, this.GetType(), "click", "alert('尚未開始上課,無法登入系統')", true); ORCSSession.ClearSession(); } else { //檢查IP位址 if (bCheckClientIP() == false && ORCSSession.Authority == "s") { ScriptManager.RegisterClientScriptBlock(UpdatePanel1, this.GetType(), "click", "alert('無法從上課地點以外的地方登入')", true); ORCSSession.ClearSession(); } //成大教室虛擬IP都相同暫時註解 else if (bUserClientIP() == false)//檢查IP是否為自己的IP { ScriptManager.RegisterClientScriptBlock(UpdatePanel1, this.GetType(), "click", "alert('此電腦已有其他使用者登入,無法再登入')", true); ORCSSession.ClearSession(); } // else { //記錄學生小組ID ORCSSession.TempID = clsEditGroupMember.GetGroupIDByUserIDClassID(ORCSSession.UserID, ORCSSession.GroupID); //學生登入成功更新出席狀態(教師不會更新,因為教師沒出現在出席狀態資料表) //個人 UpdateStudentAttendance(ORCSSession.UserID, "0"); //小組 UpdateStudentAttendance(ORCSSession.TempID, "1"); //登入成功後進入ORCS首頁 ScriptManager.RegisterClientScriptBlock(UpdatePanel1, this.GetType(), "click", "location.href='../Homepage/Homepage.aspx'", true); } } } //登入失敗 else { lErrorMsg.Text = "登入失敗,請檢查你的帳號與密碼"; } }
ORCSSessionManager ORCSSession;//定義Session protected void Page_Load(object sender, EventArgs e) { //Session初始化 ORCSSession = new ORCSSessionManager(this); //檢查是否已登入,若未登入則直接關閉頁面 if (!ORCSSession.IsLogin) { Response.Redirect("<script>window.close();</script>"); } if (!IsPostBack) { //載入課程 LoadClass(); } }
protected virtual void ORCS_Init() { // set sesstion ORCSSession = new ORCSSessionManager(this); //取得使用者ID(由MLAS活動導向過來需取得參數) if (Request.QueryString["MLASSystem"] == "Y") { string strUserID = "afeng";//Request.QueryString["UserID"].ToString(); ORCSSession.UserID = strUserID; ORCSSession.IsLogin = true; DataTable UserInfo = clsORCSUser.ORCS_User_SELECT_by_UserID(strUserID); ORCSSession.Authority = UserInfo.Rows[0]["cAuthority"].ToString(); } //標題名稱 ((Label)Master.FindControl("lTitle")).Text = Page.Title; //若不為教師身分則將工具列的資料探勘(歷史紀錄)和群組管理隱藏 if (ORCSSession.Authority != "t") { ((HyperLink)Master.FindControl("hlDataMining")).Visible = false; ((Label)Master.FindControl("lbDataMining")).Visible = false; ((HyperLink)Master.FindControl("hlEditGroup")).Visible = false; ((Label)Master.FindControl("lbEditGroup")).Visible = false; } //檢查是否已登入,若未登入則直接關閉頁面 if (!ORCSSession.IsLogin) { Response.Redirect("<script>window.close();</script>"); } /* 新版不使用以下驗證 * //檢查系統為上課(1)或下課(0),若為下課則將學生的Session清空 * DataTable dtSystemControl; * dtSystemControl = clsSystemControl.ORCS_SystemControl_SELECT("SystemControl"); * string strSystemState = dtSystemControl.Rows[0]["iSysControlParam"].ToString(); * if (strSystemState == "0" && ORCSSession.Authority == "s") * ORCSSession.ClearSession(); */ }
//回傳系統狀態(下課:0或上課:1或遲到:2) protected void MLASLogin() { string MLASUserID = ""; //使用者帳號 string MLASUserPassword = ""; //使用者密碼 string MLASUserName = ""; //使用者姓名 string MLASUserAuthority = ""; //使用者身分 //使用者帳號 if (Request.QueryString["UserID"] != null) { MLASUserID = Request.QueryString["UserID"]; } //使用者密碼 if (Request.QueryString["Password"] != null) { MLASUserPassword = Request.QueryString["Password"]; } //使用者姓名 if (Request.QueryString["Name"] != null) { MLASUserName = Request.QueryString["Name"]; } //使用者身分 if (Request.QueryString["Authority"] != null) { MLASUserAuthority = Request.QueryString["Authority"]; } DataTable dtUser = clsORCSUser.ORCS_User_SELECT_by_UserID(MLASUserID); //若無此使用者則新增 if (dtUser.Rows.Count <= 0) { clsORCSUser.ORCS_User_INSERT(MLASUserID, MLASUserPassword, MLASUserName, MLASUserAuthority); } else { if (dtUser.Rows[0]["cPassword"].ToString() != MLASUserPassword) { clsORCSUser.ORCS_User_UPDATE_UserID_Password(MLASUserID, MLASUserPassword); } } //登入條件檢查 DataTable dtUserInfo = clsORCSUser.ORCS_User_SELECT_by_UserID(MLASUserID); ORCSSession = new ORCSSessionManager(this); ORCSSession.ResetSession(); ORCSSession.IsLogin = true; ORCSSession.UserID = dtUserInfo.Rows[0]["cUserID"].ToString(); ORCSSession.Authority = dtUserInfo.Rows[0]["cAuthority"].ToString(); //檢查系統狀態,若未上課並且身分是學生則無法進入系統首頁 if (CheckSystemState() == "0" && ORCSSession.Authority == "s") { ORCSSession.ClearSession(); ScriptManager.RegisterClientScriptBlock(UpdatePanel1, this.GetType(), "click", "alert('尚未開始上課,無法登入系統');window.close();", true); } else { //檢查IP位址 if (bCheckClientIP() == false && ORCSSession.Authority == "s") { ORCSSession.ClearSession(); ScriptManager.RegisterClientScriptBlock(UpdatePanel1, this.GetType(), "click", "alert('無法從上課地點以外的地方登入');window.close();", true); } else if (bUserClientIP() == false)//檢查IP是否為自己的IP { ORCSSession.ClearSession(); ScriptManager.RegisterClientScriptBlock(UpdatePanel1, this.GetType(), "click", "alert('此電腦已有其他使用者登入,無法再登入');window.close();", true); } else { //記錄學生小組ID ORCSSession.TempID = clsEditGroupMember.GetGroupIDByUserIDClassID(ORCSSession.UserID, ORCSSession.GroupID); //學生登入成功更新出席狀態(教師不會更新,因為教師沒出現在出席狀態資料表) //個人 UpdateStudentAttendance(ORCSSession.UserID, "0"); //小組 UpdateStudentAttendance(ORCSSession.TempID, "1"); //登入成功後進入ORCS首頁 ScriptManager.RegisterClientScriptBlock(UpdatePanel1, this.GetType(), "click", "location.href='../Homepage/Homepage.aspx'", true); } } }
//由HINTS的Datamining進入ORCS系統事件 protected void HINTSDataminingLink() { string HINTSUserID = ""; //使用者帳號 string HINTSUserPassword = ""; //使用者密碼 string HINTSUserName = ""; //使用者姓名 string HINTSUserAuthority = ""; //使用者身分 string ddlClass = ""; //使用者要觀看的Class string DMType = ""; //從HINTS過來的Datamining Type //使用者帳號 if (Request.QueryString["ID"] != null) { HINTSUserID = Request.QueryString["ID"]; } //使用者密碼 if (Request.QueryString["Password"] != null) { HINTSUserPassword = Request.QueryString["Password"]; } //使用者姓名 if (Request.QueryString["Name"] != null) { HINTSUserName = Request.QueryString["Name"]; } //使用者身分 if (Request.QueryString["Authority"] != null) { HINTSUserAuthority = Request.QueryString["Authority"]; } //使用者要觀看的Class if (Request.QueryString["ddlClass"] != null) { ddlClass = Request.QueryString["ddlClass"]; } //從HINTS過來的Datamining Type if (Request.QueryString["DMType"] != null) { DMType = Request.QueryString["DMType"]; } //取得使用者資料 DataTable dtUser = clsORCSUser.ORCS_User_SELECT_by_UserID(HINTSUserID); //若無此使用者則新增 if (dtUser.Rows.Count <= 0) { clsORCSUser.ORCS_User_INSERT(HINTSUserID, HINTSUserPassword, HINTSUserName, HINTSUserAuthority); } else { if (dtUser.Rows[0]["cPassword"].ToString() != HINTSUserPassword) { clsORCSUser.ORCS_User_UPDATE_UserID_Password(HINTSUserID, HINTSUserPassword); } } //登入條件檢查 DataTable dtUserInfo = clsORCSUser.ORCS_User_SELECT_by_UserID(HINTSUserID); ORCSSession = new ORCSSessionManager(this); ORCSSession.ResetSession(); ORCSSession.IsLogin = true; ORCSSession.UserID = dtUserInfo.Rows[0]["cUserID"].ToString(); ORCSSession.Authority = dtUserInfo.Rows[0]["cAuthority"].ToString(); //記錄學生小組ID ORCSSession.TempID = clsEditGroupMember.GetGroupIDByUserIDClassID(ORCSSession.UserID, ORCSSession.GroupID); //登入成功後進入ORCS的Datamining switch (DMType) { case "IndividualAtt": //個人出席狀況 ScriptManager.RegisterClientScriptBlock(UpdatePanel1, this.GetType(), "click", "location.href='../DataMining/PersonalAttendance.aspx'", true); break; case "ClassAtt": //全班出席狀況 ScriptManager.RegisterClientScriptBlock(UpdatePanel1, this.GetType(), "click", "location.href='../DataMining/GroupAttendance.aspx?ddlClass=" + ddlClass + "'", true); break; case "IndividualEx": //個人課堂練習狀況 ScriptManager.RegisterClientScriptBlock(UpdatePanel1, this.GetType(), "click", "location.href='../DataMining/PersonalExercise.aspx'", true); break; case "GroupEx": //小組課堂練習狀況 ScriptManager.RegisterClientScriptBlock(UpdatePanel1, this.GetType(), "click", "location.href='../DataMining/TeamExercise.aspx'", true); break; case "ClassEx": //全班課堂練習狀況 ScriptManager.RegisterClientScriptBlock(UpdatePanel1, this.GetType(), "click", "location.href='../DataMining/GroupExercise.aspx?ddlClass=" + ddlClass + "'", true); break; } }