コード例 #1
0
        public LoginInformation CompareHashAndAuthenticate(string HashString)
        {
            LoginInformation LoginInformation = new LoginInformation();

            SICTLogger.WriteInfo(UserDetailsBusiness.CLASS_NAME, "CompareHashAndAuthenticate ", "Start ");
            try
            {
                string UName = string.Empty;
                DataAccessLayer.DataAccessLayer DBLayer = new DataAccessLayer.DataAccessLayer();
                DataTable DataTable           = new DataTable();
                DataTable DtUpload            = new DataTable();
                bool      IsAuthenticatedUser = false;
                DataTable = DBLayer.GetAllUserNameAndPassword();
                DtUpload  = DBLayer.GetLastUploadDate();
                foreach (DataRow Dr in DataTable.Rows)
                {
                    string UserName            = Dr[BusinessConstants.USERNAME].ToString();
                    string Password            = Dr[BusinessConstants.PASSWORD].ToString();
                    string UserNameAndPassword = string.Format("{0}&{1}", UserName, Password);
                    if (string.Compare(this.CreateMD5Hash(UserNameAndPassword), HashString, true) == 0)
                    {
                        UName               = UserName;
                        LoginInformation    = this.Authenticate(Dr);
                        IsAuthenticatedUser = true;
                        break;
                    }
                }
                if (!IsAuthenticatedUser)
                {
                    LoginInformation.ReturnCode    = 0;
                    LoginInformation.SessionId     = null;
                    LoginInformation.ReturnMessage = "Invalid Username or Password";
                }
                if (DtUpload.Rows.Count > 0)
                {
                    System.Collections.Generic.List <string> UploadDates = new System.Collections.Generic.List <string>();
                    string UploadDate = string.Empty;
                    if (!string.IsNullOrEmpty(DtUpload.Rows[0][BusinessConstants.LASTUPLOADDATE].ToString()))
                    {
                        UploadDate = System.Convert.ToDateTime(DtUpload.Rows[0][BusinessConstants.LASTUPLOADDATE].ToString()).ToUniversalTime().ToString();
                        UploadDate = System.Convert.ToDateTime(UploadDate).ToString("MM/dd/yyyy/HH/mm");
                        UploadDate = UploadDate.Replace(".", "/");
                        UploadDate = UploadDate.Replace(":", "/");
                        LoginInformation.LastUploadDate = UploadDate;
                    }
                }
                LoginInformation.IsSpecialUser = this.CheckIsSpecialUserOrNot(UName);
                LoginInformation.AirportId     = System.Convert.ToInt32(DBLayer.GetAirportIdByUserName(UName));
            }
            catch (System.Exception Ex)
            {
                LoginInformation.ReturnCode    = -1;
                LoginInformation.ReturnMessage = "Error in Function Execution";
                SICTLogger.WriteException(UserDetailsBusiness.CLASS_NAME, "CompareHashAndAuthenticate ", Ex);
            }
            SICTLogger.WriteInfo(UserDetailsBusiness.CLASS_NAME, "CompareHashAndAuthenticate ", "End");
            return(LoginInformation);
        }