using Swift.DAL.BL.System.UserManagement; using Swift.DAL.SwiftDAL; using Swift.web.Library; using Swift.web.SwiftSystem.UserManagement.ApplicationUserPool; using System; using System.Web; namespace Swift.web.Agent { public partial class Default : System.Web.UI.Page { private ApplicationUserDao user = new ApplicationUserDao(); private UserPool userPool = UserPool.GetInstance(); protected void Page_Load(object sender, EventArgs e) { //var usr = Server.HtmlEncode(User.Identity.Name); //Response.Write(usr); //username.Attributes.Add("onkeypress", "ClearMessage()"); //pwd.Attributes.Add("onkeypress", "isCapslock((event?event:evt))"); // employeeId.Attributes.Add("onkeypress", "ClearMessage()"); // agentCode.Attributes.Add("onkeypress", "ClearMessage()"); if (!IsPostBack) { agentCode.Focus(); var userPool = UserPool.GetInstance(); userPool.RemoveUser(GetStatic.GetUser()); Session.Clear(); Session.Abandon(); //ValidateDc(); //ValidateIPAddress(); } } private void ValidateDc() { var ipAddress = Request.ServerVariables["REMOTE_ADDR"]; var dcIdNo = Request.ClientCertificate["SERIALNUMBER"]; var dcUserName = Request.ClientCertificate["SUBJECTCN"]; var res = user.ValidateDcId(dcIdNo, dcUserName, ipAddress); if (res.ErrorCode != "0") { Response.Redirect(GetStatic.GetUrlRoot() + "/SiteDown/"); } } private void ValidateIPAddress() { var ipAddress = Request.ServerVariables["REMOTE_ADDR"]; System.Web.HttpBrowserCapabilities browser = Request.Browser; var result = user.GetIpStatus(ipAddress, browser.Platform); if (result.ErrorCode == "1") { //LoginBox.Visible = false; //sslRow.Visible = false; errMsg.InnerHtml = result.Msg; var mailBody = "
Suspicious Access From Outside Nepal

"; mailBody += "
IP: " + ipAddress + "

"; mailBody += "
System Info
"; var info = GetUserInfo(true); info = info.Replace("-:::-", "
"); mailBody += info; var email = ""; //GetStatic.SendEmail(ref email, "", "", "", "Fraud Analysis", mailBody, "", "0"); } if (result.Id.Replace(ipAddress + ",", "") == "Y") { Response.Redirect(GetStatic.GetUrlRoot() + "/SiteDown/"); } } private void EnableLogin() { btnLogin.Enabled = true; } private void DisableLogin() { btnLogin.Enabled = false; } private void Authenticate() { DisableLogin(); GetStatic.WriteCookie("loginType", "AGENT"); var ipAddress = Request.ServerVariables["remote_addr"]; var dcIdNo = Request.ClientCertificate["SERIALNUMBER"]; var dcUserName = Request.ClientCertificate["SUBJECTCN"]; var dr = user.DoLoginForAgent(username.Text, pwd.Text, agentCode.Text, employeeId.Text, GetUserInfo(), ipAddress, dcIdNo, dcUserName); //Check Authentication From DB if (dr.ErrorCode != "0") { if (dr.ErrorCode == "2") { var dbr = ManageLoginAttempts(dr.Id, dr.AttemptCount); if (dbr.ErrorCode != "-13") dr.Msg = dbr.Msg; } errMsg.InnerHtml = "

" + dr.Msg; errMsg.Visible = true; EnableLogin(); return; } var usrName = user.FilterQuote(username.Text); if (dr.UserAccessLevel.ToUpper() == "S") { if (userPool.IsUserExists(usrName)) { //Session.Add("call", "admin"); Session.Add("usr", usrName); var url = GetStatic.GetUrlRoot() + "/LoginSession.aspx"; Response.Redirect(url); return; } } //Check User Pool var dbResult = ManageUserSession(dr); if (dbResult.ErrorCode != "0") { errMsg.InnerHtml = "

" + dbResult.Msg; //mes.ForeColor = System.Drawing.Color.Red; EnableLogin(); return; } if (dr.isForcePwdChanged.ToUpper() == "Y") { Response.Redirect("../SwiftSystem/UserManagement/AgentUserSetup/ChangePassword.aspx"); } Response.Redirect("Dashboard2.aspx"); } private DbResult ManageUserSession(UserDetails ud) { Session.Clear(); var res = SetUserPool(ud); if (res.ErrorCode != "0") return res; GetStatic.WriteSession("admin", ud.Id); GetStatic.WriteSession("fullname", ud.FullName); GetStatic.WriteCookie("loginType", "AGENT"); //GetStatic.WriteSession("branchId", ud.Branch); //GetStatic.WriteSession("branchName", ud.BranchName); //GetStatic.WriteSession("address", ud.Address); //GetStatic.WriteSession("userType", ud.UserType); var cookieKey = ud.Id + "_userSessionId"; GetStatic.WriteCookie(cookieKey, GetStatic.GetSessionId()); return res; } private DbResult SetUserPool(UserDetails ud) { GetStatic.WriteSession("branch", ud.Branch); GetStatic.WriteSession("branchName", ud.BranchName); GetStatic.WriteSession("agent", ud.Agent); GetStatic.WriteSession("agentName", ud.AgentName); GetStatic.WriteSession("superAgent", ud.SuperAgent); GetStatic.WriteSession("superAgentName", ud.SuperAgentName); GetStatic.WriteSession("settlingAgent", ud.SettlingAgent); GetStatic.WriteSession("mapCodeInt", ud.MapCodeInt); GetStatic.WriteSession("parentMapCodeInt", ud.ParentMapCodeInt); GetStatic.WriteSession("mapCodeDom", ud.MapCodeDom); GetStatic.WriteSession("agentType", ud.AgentType); GetStatic.WriteSession("isActAsBranch", ud.IsActAsBranch); GetStatic.WriteSession("fromSendTrnTime", ud.FromSendTrnTime); GetStatic.WriteSession("toSendTrnTime", ud.ToSendTrnTime); GetStatic.WriteSession("fromPayTrnTime", ud.FromPayTrnTime); GetStatic.WriteSession("toPayTrnTime", ud.ToPayTrnTime); GetStatic.WriteSession("country", ud.Country); GetStatic.WriteSession("countryId", ud.CountryId); GetStatic.WriteSession("userType", ud.UserType); GetStatic.WriteSession("isHeadOffice", ud.IsHeadOffice); GetStatic.WriteSession("newBranchId", ud.newBranchId); GetStatic.WriteSession("agentLocation", ud.AgentLocation); GetStatic.WriteSession("agentGrp", ud.AgentGrp); GetStatic.WriteSession("agentEmail", ud.AgentEmail); GetStatic.WriteSession("agentPhone", ud.AgentPhone); GetStatic.WriteSession("user", ud.Id); GetStatic.WriteSession("agentType", "send"); HttpBrowserCapabilities browser = Request.Browser; var usr = new LoggedInUser(); usr.UserId = GetStatic.ParseInt(ud.UserId); usr.UserName = ud.Id; usr.UserFullName = ud.FullName; usr.LoginTime = DateTime.Now; usr.UserAccessLevel = ud.UserAccessLevel; usr.UserAgentName = ud.BranchName; usr.SessionTimeOutPeriod = GetStatic.ParseInt(ud.sessionTimeOut); usr.LastLoginTime = Convert.ToDateTime(ud.LastLoginTs); usr.Browser = browser.Browser + "/" + browser.Type; usr.IPAddress = Request.ServerVariables["remote_addr"]; usr.SessionID = GetStatic.GetSessionId(); usr.DcInfo = Request.ClientCertificate["SERIALNUMBER"] + ":" + Request.ClientCertificate["SUBJECTCN"]; return userPool.AddUser(usr); } private DbResult ManageLoginAttempts(string id, int attemptCount) { var countLoginAttemptsInt = GetStatic.ParseInt(GetStatic.ReadSession(id, "0")); countLoginAttemptsInt++; GetStatic.WriteSession(id, (countLoginAttemptsInt).ToString()); var dbResult = new DbResult(); dbResult.SetError("-13", "", ""); if (countLoginAttemptsInt >= attemptCount) { var lockReason = "Your account has been locked to due to continuous invalid login attempt."; dbResult = user.DoLockAccount(id, lockReason); GetStatic.WriteSession(id, "0"); dbResult.SetError("2", lockReason, ""); //dbResult.ErrorCode = "2"; } return dbResult; } private string GetUserInfo() { return "";// "IP Adress = " + Request.ServerVariables["REMOTE_ADDR"]; } private string GetUserInfo(bool fullInfo) { System.Web.HttpBrowserCapabilities browser = Request.Browser; string str = " Browser Capabilities = Values -:::-" + "Type = " + browser.Type + "-:::-" //-:::- + "Name = " + browser.Browser + "-:::-" + "Version = " + browser.Version + "-:::-" + "Major Version = " + browser.MajorVersion + "-:::-" + "Minor Version = " + browser.MinorVersion + "-:::-" + "Platform = " + browser.Platform + "-:::-" + "Is Beta = " + browser.Beta + "-:::-" + "Is Crawler = " + browser.Crawler + "-:::-" + "Is AOL = " + browser.AOL + "-:::-" + "Is Win16 = " + browser.Win16 + "-:::-" + "Is Win32 = " + browser.Win32 + "-:::-" + "Supports Frames = " + browser.Frames + "-:::-" + "Supports Tables = " + browser.Tables + "-:::-" + "Supports Cookies = " + browser.Cookies + "-:::-" + "Supports VBScript = " + browser.VBScript + "-:::-" + "Supports JavaScript = " + browser.EcmaScriptVersion.ToString() + "-:::-" + "Supports Java Applets = " + browser.JavaApplets + "-:::-" + "Supports ActiveX Controls = " + browser.ActiveXControls + "-:::-" + "Supports JavaScript Version = " + browser["JavaScriptVersion"] + "-:::-" + "CDF = " + browser.CDF + "-:::-" + "IP Adress = " + Request.ServerVariables["REMOTE_ADDR"] + "-:::-" + "User Agent = " + Request.ServerVariables["HTTP_USER_AGENT"] + "-:::-" + "Refrerer = " + Request.ServerVariables["HTTP_REFERER"] + "-:::-" + "Http Accept = " + Request.ServerVariables["HTTP_ACCEPT"] + "-:::-" + "Language = " + Request.ServerVariables["HTTP_ACCEPT_LANGUAGE"]; return str; } protected void btnLogin_Click(object sender, EventArgs e) { Authenticate(); } protected void btnFlushUser_Click(object sender, EventArgs e) { userPool.RemoveUser(GetStatic.GetUser()); } } }