You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

277 lines
12 KiB

  1. using Swift.DAL.BL.System.UserManagement;
  2. using Swift.DAL.SwiftDAL;
  3. using Swift.web.Library;
  4. using Swift.web.SwiftSystem.UserManagement.ApplicationUserPool;
  5. using System;
  6. using System.Web;
  7. namespace Swift.web.Agent
  8. {
  9. public partial class Default : System.Web.UI.Page
  10. {
  11. private ApplicationUserDao user = new ApplicationUserDao();
  12. private UserPool userPool = UserPool.GetInstance();
  13. protected void Page_Load(object sender, EventArgs e)
  14. {
  15. //var usr = Server.HtmlEncode(User.Identity.Name);
  16. //Response.Write(usr);
  17. //username.Attributes.Add("onkeypress", "ClearMessage()");
  18. //pwd.Attributes.Add("onkeypress", "isCapslock((event?event:evt))");
  19. // employeeId.Attributes.Add("onkeypress", "ClearMessage()");
  20. // agentCode.Attributes.Add("onkeypress", "ClearMessage()");
  21. if (!IsPostBack)
  22. {
  23. agentCode.Focus();
  24. var userPool = UserPool.GetInstance();
  25. userPool.RemoveUser(GetStatic.GetUser());
  26. Session.Clear();
  27. Session.Abandon();
  28. //ValidateDc();
  29. //ValidateIPAddress();
  30. }
  31. }
  32. private void ValidateDc()
  33. {
  34. var ipAddress = Request.ServerVariables["REMOTE_ADDR"];
  35. var dcIdNo = Request.ClientCertificate["SERIALNUMBER"];
  36. var dcUserName = Request.ClientCertificate["SUBJECTCN"];
  37. var res = user.ValidateDcId(dcIdNo, dcUserName, ipAddress);
  38. if (res.ErrorCode != "0")
  39. {
  40. Response.Redirect(GetStatic.GetUrlRoot() + "/SiteDown/");
  41. }
  42. }
  43. private void ValidateIPAddress()
  44. {
  45. var ipAddress = Request.ServerVariables["REMOTE_ADDR"];
  46. System.Web.HttpBrowserCapabilities browser = Request.Browser;
  47. var result = user.GetIpStatus(ipAddress, browser.Platform);
  48. if (result.ErrorCode == "1")
  49. {
  50. //LoginBox.Visible = false;
  51. //sslRow.Visible = false;
  52. errMsg.InnerHtml = result.Msg;
  53. var mailBody = "<div style=\"font-size:24px; font-weight:bold\"> Suspicious Access From Outside Nepal </div><br />";
  54. mailBody += "<div style=\"background-color:#F00; font-size:18px; font-weight:bold; width:300px;\">IP: " + ipAddress + "</div><br />";
  55. mailBody += "<div style=\"font-size:18px; font-weight:bold; width:300px;\"> System Info </div>";
  56. var info = GetUserInfo(true);
  57. info = info.Replace("-:::-", "<br />");
  58. mailBody += info;
  59. var email = "";
  60. //GetStatic.SendEmail(ref email, "", "", "", "Fraud Analysis", mailBody, "", "0");
  61. }
  62. if (result.Id.Replace(ipAddress + ",", "") == "Y")
  63. {
  64. Response.Redirect(GetStatic.GetUrlRoot() + "/SiteDown/");
  65. }
  66. }
  67. private void EnableLogin()
  68. {
  69. btnLogin.Enabled = true;
  70. }
  71. private void DisableLogin()
  72. {
  73. btnLogin.Enabled = false;
  74. }
  75. private void Authenticate()
  76. {
  77. DisableLogin();
  78. GetStatic.WriteCookie("loginType", "AGENT");
  79. var ipAddress = Request.ServerVariables["remote_addr"];
  80. var dcIdNo = Request.ClientCertificate["SERIALNUMBER"];
  81. var dcUserName = Request.ClientCertificate["SUBJECTCN"];
  82. var dr = user.DoLoginForAgent(username.Text, pwd.Text, agentCode.Text, employeeId.Text, GetUserInfo(), ipAddress, dcIdNo, dcUserName);
  83. //Check Authentication From DB
  84. if (dr.ErrorCode != "0")
  85. {
  86. if (dr.ErrorCode == "2")
  87. {
  88. var dbr = ManageLoginAttempts(dr.Id, dr.AttemptCount);
  89. if (dbr.ErrorCode != "-13")
  90. dr.Msg = dbr.Msg;
  91. }
  92. errMsg.InnerHtml = " <br /><br /> " + dr.Msg;
  93. errMsg.Visible = true;
  94. EnableLogin();
  95. return;
  96. }
  97. var usrName = user.FilterQuote(username.Text);
  98. if (dr.UserAccessLevel.ToUpper() == "S")
  99. {
  100. if (userPool.IsUserExists(usrName))
  101. {
  102. //Session.Add("call", "admin");
  103. Session.Add("usr", usrName);
  104. var url = GetStatic.GetUrlRoot() + "/LoginSession.aspx";
  105. Response.Redirect(url);
  106. return;
  107. }
  108. }
  109. //Check User Pool
  110. var dbResult = ManageUserSession(dr);
  111. if (dbResult.ErrorCode != "0")
  112. {
  113. errMsg.InnerHtml = "<br/><br/>" + dbResult.Msg;
  114. //mes.ForeColor = System.Drawing.Color.Red;
  115. EnableLogin();
  116. return;
  117. }
  118. if (dr.isForcePwdChanged.ToUpper() == "Y")
  119. {
  120. Response.Redirect("../SwiftSystem/UserManagement/AgentUserSetup/ChangePassword.aspx");
  121. }
  122. Response.Redirect("Dashboard2.aspx");
  123. }
  124. private DbResult ManageUserSession(UserDetails ud)
  125. {
  126. Session.Clear();
  127. var res = SetUserPool(ud);
  128. if (res.ErrorCode != "0")
  129. return res;
  130. GetStatic.WriteSession("admin", ud.Id);
  131. GetStatic.WriteSession("fullname", ud.FullName);
  132. GetStatic.WriteCookie("loginType", "AGENT");
  133. //GetStatic.WriteSession("branchId", ud.Branch);
  134. //GetStatic.WriteSession("branchName", ud.BranchName);
  135. //GetStatic.WriteSession("address", ud.Address);
  136. //GetStatic.WriteSession("userType", ud.UserType);
  137. var cookieKey = ud.Id + "_userSessionId";
  138. GetStatic.WriteCookie(cookieKey, GetStatic.GetSessionId());
  139. return res;
  140. }
  141. private DbResult SetUserPool(UserDetails ud)
  142. {
  143. GetStatic.WriteSession("branch", ud.Branch);
  144. GetStatic.WriteSession("branchName", ud.BranchName);
  145. GetStatic.WriteSession("agent", ud.Agent);
  146. GetStatic.WriteSession("agentName", ud.AgentName);
  147. GetStatic.WriteSession("superAgent", ud.SuperAgent);
  148. GetStatic.WriteSession("superAgentName", ud.SuperAgentName);
  149. GetStatic.WriteSession("settlingAgent", ud.SettlingAgent);
  150. GetStatic.WriteSession("mapCodeInt", ud.MapCodeInt);
  151. GetStatic.WriteSession("parentMapCodeInt", ud.ParentMapCodeInt);
  152. GetStatic.WriteSession("mapCodeDom", ud.MapCodeDom);
  153. GetStatic.WriteSession("agentType", ud.AgentType);
  154. GetStatic.WriteSession("isActAsBranch", ud.IsActAsBranch);
  155. GetStatic.WriteSession("fromSendTrnTime", ud.FromSendTrnTime);
  156. GetStatic.WriteSession("toSendTrnTime", ud.ToSendTrnTime);
  157. GetStatic.WriteSession("fromPayTrnTime", ud.FromPayTrnTime);
  158. GetStatic.WriteSession("toPayTrnTime", ud.ToPayTrnTime);
  159. GetStatic.WriteSession("country", ud.Country);
  160. GetStatic.WriteSession("countryId", ud.CountryId);
  161. GetStatic.WriteSession("userType", ud.UserType);
  162. GetStatic.WriteSession("isHeadOffice", ud.IsHeadOffice);
  163. GetStatic.WriteSession("newBranchId", ud.newBranchId);
  164. GetStatic.WriteSession("agentLocation", ud.AgentLocation);
  165. GetStatic.WriteSession("agentGrp", ud.AgentGrp);
  166. GetStatic.WriteSession("agentEmail", ud.AgentEmail);
  167. GetStatic.WriteSession("agentPhone", ud.AgentPhone);
  168. GetStatic.WriteSession("user", ud.Id);
  169. GetStatic.WriteSession("agentType", "send");
  170. HttpBrowserCapabilities browser = Request.Browser;
  171. var usr = new LoggedInUser();
  172. usr.UserId = GetStatic.ParseInt(ud.UserId);
  173. usr.UserName = ud.Id;
  174. usr.UserFullName = ud.FullName;
  175. usr.LoginTime = DateTime.Now;
  176. usr.UserAccessLevel = ud.UserAccessLevel;
  177. usr.UserAgentName = ud.BranchName;
  178. usr.SessionTimeOutPeriod = GetStatic.ParseInt(ud.sessionTimeOut);
  179. usr.LastLoginTime = Convert.ToDateTime(ud.LastLoginTs);
  180. usr.Browser = browser.Browser + "/" + browser.Type;
  181. usr.IPAddress = Request.ServerVariables["remote_addr"];
  182. usr.SessionID = GetStatic.GetSessionId();
  183. usr.DcInfo = Request.ClientCertificate["SERIALNUMBER"] + ":" + Request.ClientCertificate["SUBJECTCN"];
  184. return userPool.AddUser(usr);
  185. }
  186. private DbResult ManageLoginAttempts(string id, int attemptCount)
  187. {
  188. var countLoginAttemptsInt = GetStatic.ParseInt(GetStatic.ReadSession(id, "0"));
  189. countLoginAttemptsInt++;
  190. GetStatic.WriteSession(id, (countLoginAttemptsInt).ToString());
  191. var dbResult = new DbResult();
  192. dbResult.SetError("-13", "", "");
  193. if (countLoginAttemptsInt >= attemptCount)
  194. {
  195. var lockReason = "Your account has been locked to due to continuous invalid login attempt.";
  196. dbResult = user.DoLockAccount(id, lockReason);
  197. GetStatic.WriteSession(id, "0");
  198. dbResult.SetError("2", lockReason, "");
  199. //dbResult.ErrorCode = "2";
  200. }
  201. return dbResult;
  202. }
  203. private string GetUserInfo()
  204. {
  205. return "";// "IP Adress = " + Request.ServerVariables["REMOTE_ADDR"];
  206. }
  207. private string GetUserInfo(bool fullInfo)
  208. {
  209. System.Web.HttpBrowserCapabilities browser = Request.Browser;
  210. string str = " Browser Capabilities = Values -:::-"
  211. + "Type = " + browser.Type + "-:::-" //-:::-
  212. + "Name = " + browser.Browser + "-:::-"
  213. + "Version = " + browser.Version + "-:::-"
  214. + "Major Version = " + browser.MajorVersion + "-:::-"
  215. + "Minor Version = " + browser.MinorVersion + "-:::-"
  216. + "Platform = " + browser.Platform + "-:::-"
  217. + "Is Beta = " + browser.Beta + "-:::-"
  218. + "Is Crawler = " + browser.Crawler + "-:::-"
  219. + "Is AOL = " + browser.AOL + "-:::-"
  220. + "Is Win16 = " + browser.Win16 + "-:::-"
  221. + "Is Win32 = " + browser.Win32 + "-:::-"
  222. + "Supports Frames = " + browser.Frames + "-:::-"
  223. + "Supports Tables = " + browser.Tables + "-:::-"
  224. + "Supports Cookies = " + browser.Cookies + "-:::-"
  225. + "Supports VBScript = " + browser.VBScript + "-:::-"
  226. + "Supports JavaScript = " + browser.EcmaScriptVersion.ToString() + "-:::-"
  227. + "Supports Java Applets = " + browser.JavaApplets + "-:::-"
  228. + "Supports ActiveX Controls = " + browser.ActiveXControls + "-:::-"
  229. + "Supports JavaScript Version = " + browser["JavaScriptVersion"] + "-:::-"
  230. + "CDF = " + browser.CDF + "-:::-"
  231. + "IP Adress = " + Request.ServerVariables["REMOTE_ADDR"] + "-:::-"
  232. + "User Agent = " + Request.ServerVariables["HTTP_USER_AGENT"] + "-:::-"
  233. + "Refrerer = " + Request.ServerVariables["HTTP_REFERER"] + "-:::-"
  234. + "Http Accept = " + Request.ServerVariables["HTTP_ACCEPT"] + "-:::-"
  235. + "Language = " + Request.ServerVariables["HTTP_ACCEPT_LANGUAGE"];
  236. return str;
  237. }
  238. protected void btnLogin_Click(object sender, EventArgs e)
  239. {
  240. Authenticate();
  241. }
  242. protected void btnFlushUser_Click(object sender, EventArgs e)
  243. {
  244. userPool.RemoveUser(GetStatic.GetUser());
  245. }
  246. }
  247. }