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.
 
 
 
 
 

278 lines
12 KiB

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 = "<div style=\"font-size:24px; font-weight:bold\"> Suspicious Access From Outside Nepal </div><br />";
mailBody += "<div style=\"background-color:#F00; font-size:18px; font-weight:bold; width:300px;\">IP: " + ipAddress + "</div><br />";
mailBody += "<div style=\"font-size:18px; font-weight:bold; width:300px;\"> System Info </div>";
var info = GetUserInfo(true);
info = info.Replace("-:::-", "<br />");
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 = " <br /><br /> " + 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 = "<br/><br/>" + 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());
}
}
}