using System; using System.Web; using System.Web.Script.Serialization; using System.Configuration; using System.Net; using System.IO; using System.Xml; using System.Text; using System.Web.UI.HtmlControls; using System.Web.Services; using System.Security.Principal; using System.Collections.Generic; using System.Linq; using System.Web.Caching; using Newtonsoft.Json.Linq; using System.Threading; using System.Web.Security; using Saml; using System.Collections; public partial class Signin : System.Web.UI.Page { Util.Util util = new Util.Util(); LogFile.Log logobj = new LogFile.Log(); public string appTitle = string.Empty; public string direction = "ltr"; public string langType = "en"; public string strFileinfo = string.Empty; public string hybridGUID = string.Empty; public string hybridDeviceId = string.Empty; public string hybridDefaultPage = string.Empty; public string KeepMeAutoLogin = "false"; public string KeepMeAutoLoginWeb = "false"; public string KeepMeAutoPwd = string.Empty; public static string isMobDevice = string.Empty; public static string btforDupLogin = string.Empty; public static string timeZone = string.Empty; public static string staySignIn = "false"; public string isOfficeSSO = string.Empty; string slproject = string.Empty; string proj = string.Empty; string axProjs = string.Empty; string language = string.Empty; public string isUserLang = string.Empty; public string isPowerBy = string.Empty; public StringBuilder strParams = new StringBuilder(); public static string ssoredirecturl = string.Empty; public string oktaclientKey = string.Empty; public string oktasecretKey = string.Empty; public string oktadomain = string.Empty; public string office365clientKey = string.Empty; public string office365secretKey = string.Empty; public static string googleclientKey = string.Empty; public static string googlesecretKey = string.Empty; public static string fbclientKey = string.Empty; public static string fbsecretKey = string.Empty; ExecTrace ObjExecTr = ExecTrace.Instance; public static string StartTime = string.Empty; string requestProcess_logtime = string.Empty; public string isPostback = "false"; protected override void InitializeCulture() { if (ConfigurationManager.AppSettings["proj"] != null && ConfigurationManager.AppSettings["proj"].ToString() != string.Empty) { language = LoadLanguages(); string dirLang = string.Empty; dirLang = util.SetCulture(language.ToUpper()); if (!string.IsNullOrEmpty(dirLang)) { direction = dirLang.Split('-')[0]; langType = dirLang.Split('-')[1]; } FileInfo filcustom = new FileInfo(HttpContext.Current.Server.MapPath("~/Js/lang/content-" + langType + ".js")); if (!(filcustom.Exists)) { langType = "en"; direction = "ltr"; } } } protected void Pre_Load(object sender, EventArgs e) { if (HttpContext.Current.Request.Url.AbsolutePath.ToLower().IndexOf(Request.FilePath.ToLower() + "/") > -1) Response.Redirect("~/CusError/AxCustomError.aspx"); } protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { if (Util.Util.CheckCrossScriptingInString(Request.QueryString.ToString())) Response.Redirect("~/CusError/AxCustomError.aspx"); if (Session["LoginWith"] != null) { if (Session["Project"] != null && Session["Project"].ToString() != string.Empty && Session["username"] != null && Session["username"].ToString() != string.Empty) { if (util.CheckLoggedUserDetails(Session["Project"].ToString(), Session.SessionID) == true) { ASB.WebService wsObj = new ASB.WebService(); wsObj.SignOut(); } } switch (Session["LoginWith"].ToString()) { case "google": FetchUserSocialDetail("google"); break; case "facebook": FetchUserSocialDetail("facebook"); break; case "saml": FetchUserSocialDetail("saml"); break; } } else if (Request.QueryString["ssotype"] != null) { isMobDevice = Request.QueryString["ismobile"].ToString(); staySignIn = Request.QueryString["ssin"].ToString(); if (Request.QueryString["ssotype"] == "office365") { Session["LoginWith"] = "office365"; FetchUserSocialDetail("office365", Request.QueryString["code"].ToString()); } else if (Request.QueryString["ssotype"] == "okta") { isOfficeSSO = "true"; Session["LoginWith"] = "okta"; FetchUserSocialDetail("okta", Request.QueryString["code"].ToString()); } } else if (Request.QueryString["duplicateUser"] != null && Session["duplicateUser"] != null) { panelSignin.Visible = false; isMobDevice = Request.QueryString["mobDevice"]; btforDupLogin = Request.QueryString["hbtforDupLogin"]; string[] duplicateUser = Session["duplicateUser"].ToString().Split('♦'); Session["duplicateUser"] = null; UserIsLoggedIn(bool.Parse(duplicateUser[0]), duplicateUser[1], duplicateUser[2], duplicateUser[3], duplicateUser[4], duplicateUser[5]); } else { if (ConfigurationManager.AppSettings["EnableAxpertConfiguration"] != null && ConfigurationManager.AppSettings["EnableAxpertConfiguration"].ToString() == "true") { axpertConfig.Visible = true; } if (Session["duplicateUser"] != null) { Session["duplicateUser"] = null; Session["loggedUserDetails"] = null; } if (Session["Project"] != null && Session["Project"].ToString() != string.Empty) { if (util.CheckLoggedUserDetails(Session["Project"].ToString(), Session.SessionID) == true) { ASB.WebService wsObj = new ASB.WebService(); wsObj.SignOut(); } } if (ConfigurationManager.AppSettings["HomeSessExpriesUrl"] != null & ConfigurationManager.AppSettings["HomeSessExpriesUrl"].ToString() != "" & Session["AxCloudDB"] != null) { string url; Session["AxCloudDB"] = null; url = ConfigurationManager.AppSettings["HomeSessExpriesUrl"]; Response.Redirect(url); } if (Request.QueryString["hybridGUID"] != null) hybridGUID = Request.QueryString["hybridGUID"].ToString(); else hybridGUID = string.Empty; SetAxpertLogo(); IsLicExist(); //string axpertVersion = ""; //if (ConfigurationManager.AppSettings["axpertVersion"] != null) //{ // if (ConfigurationManager.AppSettings["axpertVersion"].ToString() != string.Empty) // axpertVersion = "Version " + ConfigurationManager.AppSettings["axpertVersion"].ToString(); //} //axpertVer.InnerText = axpertVersion; if (ConfigurationManager.AppSettings["staysignin"] != null && ConfigurationManager.AppSettings["staysignin"].ToString() == "true") axstaysignin.Visible = true; else axstaysignin.Visible = false; if (Session["Project"] != null) Session["Project"] = null; if (Session["queryProj"] != null) Session["queryProj"] = null; if (ConfigurationManager.AppSettings["proj"] != null && ConfigurationManager.AppSettings["proj"].ToString() != string.Empty) { Session["Project"] = proj = ConfigurationManager.AppSettings["proj"].ToString(); hdnAxProjs.Value = proj; selectProj.Style.Add("display", "none"); axSelectProj.Value = proj; } else { string dProj = string.Empty; string queryProj = Request.QueryString.ToString(); if (queryProj != string.Empty && !queryProj.Contains("&") && !queryProj.Contains("=")) dProj = queryProj; else if (queryProj != string.Empty && (queryProj.Contains("&") && !queryProj.Split('&')[0].Contains("="))) dProj = queryProj.Split('&')[0]; else { string subDomain = HttpContext.Current.Request.ApplicationPath; string urlDomain = HttpContext.Current.Request.Url.Host; if (subDomain != "/") dProj = subDomain.Split('/').Last(); else if (urlDomain != string.Empty && urlDomain.ToLower() != "localhost") dProj = urlDomain; } if (dProj != string.Empty) GetWebSiteProjectDetails(dProj); else GetProjectDetails(); } if (language != string.Empty) { Session["AxLanguages"] = language; isUserLang = language; hdnLangs.Value = language; axLangFld.Style.Add("display", "none"); } else if (proj != string.Empty) { language = LoadLanguages(); if (language == string.Empty) isUserLang = ""; else isUserLang = language; StringBuilder axLangs = new StringBuilder(); if ((string.IsNullOrEmpty(language))) axLangs.Append("ENGLISH"); else { var strLang = language.Split(','); if (strLang.Length > 1 && strLang[1].ToString() != "") axLangs.Append(language); } hdnLangs.Value = axLangs.ToString(); } string copyRightTxt = string.Empty; if (proj != string.Empty) { copyRightTxt = util.GetConfigAttrValue(proj, "AxCopyRightText", language); isPowerBy = "true"; copyRightTxt = copyRightTxt.Replace("#br#", "
"); if (copyRightTxt != string.Empty) dvCopyRight.InnerText = copyRightTxt; } RenderLandingPage(); if (ConfigurationManager.AppSettings["ssoredirecturl"] != null && ConfigurationManager.AppSettings["ssoredirecturl"].ToString() != string.Empty) { ssoredirecturl = ConfigurationManager.AppSettings["ssoredirecturl"].ToString(); } if (ConfigurationManager.AppSettings["ssologin"] != null && ConfigurationManager.AppSettings["ssologin"].ToString() != string.Empty) { string[] ssoclientKey = null; if (ConfigurationManager.AppSettings["ssoclientKey"] != null && ConfigurationManager.AppSettings["ssoclientKey"].ToString() != string.Empty) { string ssoclientKeys = ConfigurationManager.AppSettings["ssoclientKey"].ToString(); ssoclientKey = ssoclientKeys.Split(','); } string[] ssoclientsecretKey = null; if (ConfigurationManager.AppSettings["ssoclientsecretKey"] != null && ConfigurationManager.AppSettings["ssoclientsecretKey"].ToString() != string.Empty) { string ssoclientsecretKeys = ConfigurationManager.AppSettings["ssoclientsecretKey"].ToString(); ssoclientsecretKey = ssoclientsecretKeys.Split(','); } string ssologin = ConfigurationManager.AppSettings["ssologin"].ToString(); string[] ssologinAcc = ssologin.Split(','); for (int i = 0; i < ssologinAcc.Count(); i++) { if (ssologinAcc[i] == "office365") { Office365Btn.Visible = true; if (ssoclientKey != null && ssoclientKey[i] != null) office365clientKey = ssoclientKey[i]; if (ssoclientsecretKey != null && ssoclientsecretKey[i] != null) office365secretKey = ssoclientsecretKey[i]; } else if (ssologinAcc[i] == "okta") { OktaBtn.Visible = true; if (ssoclientKey != null && ssoclientKey[i] != null) oktaclientKey = ssoclientKey[i]; if (ssoclientsecretKey != null && ssoclientsecretKey[i] != null) oktasecretKey = ssoclientsecretKey[i]; if (ConfigurationManager.AppSettings["ssooktadomain"] != null && ConfigurationManager.AppSettings["ssooktadomain"].ToString() != string.Empty) oktadomain = ConfigurationManager.AppSettings["ssooktadomain"].ToString(); } else if (ssologinAcc[i] == "google") { GoogleBtn.Visible = true; if (ssoclientKey != null && ssoclientKey[i] != null) googleclientKey = ssoclientKey[i]; if (ssoclientsecretKey != null && ssoclientsecretKey[i] != null) googlesecretKey = ssoclientsecretKey[i]; } else if (ssologinAcc[i] == "facebook") { FacebookBtn.Visible = true; if (ssoclientKey != null && ssoclientKey[i] != null) fbclientKey = ssoclientKey[i]; if (ssoclientsecretKey != null && ssoclientsecretKey[i] != null) fbsecretKey = ssoclientsecretKey[i]; } else if (ssologinAcc[i] == "windows") { WindowsBtn.Visible = true; } else if (ssologinAcc[i] == "saml") { SamlBtn.Visible = true; } } } if (Request.QueryString["deviceid"] != null) { string projName = string.Empty; if (Request.QueryString["projname"] != null) projName = Request.QueryString["projname"].ToString(); hybridDeviceId = Request.QueryString["deviceid"].ToString(); HybridAppKeepSigninDetails(hybridDeviceId, projName); if (Request.QueryString["type"] != null && Request.QueryString["name"] != null) hybridDefaultPage = Request.QueryString["type"].ToString() + "^" + Request.QueryString["name"].ToString(); else hybridDefaultPage = string.Empty; } else { hybridDeviceId = string.Empty; hybridDefaultPage = string.Empty; } string kmsin = "true"; if (Request.QueryString["keepmesignin"] != null) kmsin = Request.QueryString["keepmesignin"]; if (hybridDeviceId == string.Empty && (kmsin == "" || kmsin == "true")) KeepMeAutoLoginWeb = "true"; Session.Remove("LoginWith"); AddCustomLinks(); } StartTime = DateTime.Now.ToString();//.ToString("dd-MM-yyyy HH:mm:ss.fff"); } else { string browserElapstm = browserElapsTime.Value; requestProcess_logtime += ObjExecTr.WireElapsTime(browserElapstm, StartTime); isPostback = "true"; panelSignin.Visible = false; } } protected void SetAxpertLogo() { main_body.Attributes.Add("Dir", direction); string folderPath = Server.MapPath("~/images/Custom"); DirectoryInfo di = new DirectoryInfo(folderPath); FileInfo[] diFileinfo = di.GetFiles(); var customlogoexist = "False"; //foreach (var drfile in diFileinfo) //{ // if (drfile.Length > 0 && drfile.Name.Contains("homelogo_mob")) // { // strFileinfo = drfile.Name; // break; // } //} //foreach (var drfile in diFileinfo) //{ // if (drfile.Length > 0 && drfile.Name.Contains("homelogo")) // { // if (drfile.Name.Contains("mp4")) // { // main_body.Attributes.CssStyle.Add("background", ""); // bgvid.Attributes.CssStyle.Add("display", "block"); // bgvidsource.Attributes.Add("src", "./../images/Custom/homelogo.mp4?v=" + DateTime.Now.ToString("yyyyMMddHHmmss") + ""); // customlogoexist = "True"; // break; // } // else // { // main_body.Attributes.CssStyle.Add("background", "url(./../images/Custom/" + drfile.Name + "?v=" + DateTime.Now.ToString("yyyyMMddHHmmss") + ") no-repeat center center fixed !important "); // main_body.Attributes.CssStyle.Add("background-size", "cover !important"); // main_body.Attributes.CssStyle.Add("height", "100vh !important"); // customlogoexist = "True"; // break; // } // } //} if (customlogoexist == "False") { main_body.Attributes.CssStyle.Add("background", "url(./../AxpImages/login-img.png)"); main_body.Attributes.CssStyle.Add("background-repeat", "no-repeat"); main_body.Attributes.CssStyle.Add("background-attachment", "fixed"); main_body.Attributes.CssStyle.Add("background-position", "bottom"); main_body.Attributes.CssStyle.Add("background-size", "cover !important"); } } private string LoadLanguages() { string language = string.Empty; if (ConfigurationManager.AppSettings["proj"] != null && ConfigurationManager.AppSettings["proj"] != string.Empty) { string proj = ConfigurationManager.AppSettings["proj"].ToString(); language = util.GetConfigAttrValue(proj, "AxLanguages"); } return language; } private void AddCustomLinks() { Custom cusObj = Custom.Instance; for (int i = 0; i <= cusObj.jsPageName.Count - 1; i++) { string fileName = string.Empty; if (cusObj.jsPageName[i].ToString() == "Signin.aspx") { fileName = cusObj.jsPageFiles[i].ToString(); HtmlGenericControl js = new HtmlGenericControl("script"); js.Attributes["type"] = "text/javascript"; string path = "../" + (proj != string.Empty ? proj + "/" : "") + fileName; js.Attributes["src"] = path; ScriptManager1.Controls.Add(js); } } for (int j = 0; j <= cusObj.cssPageName.Count - 1; j++) { string fileName = string.Empty; if (cusObj.cssPageName[j].ToString() == "Signin.aspx") { fileName = cusObj.cssPageFiles[j].ToString(); HtmlGenericControl css = new HtmlGenericControl("link"); css.Attributes["type"] = "text/css"; css.Attributes["rel"] = "stylesheet"; string path = "../" + (proj != string.Empty ? proj + "/" : "") + fileName; css.Attributes["href"] = path; ScriptManager1.Controls.Add(css); } } } private void GetProjectDetails() { axProjs = util.CheckForAvailableProjects(); if (axProjs != string.Empty) { hdnAxProjs.Value = axProjs; var isProjValid = util.IsProjectValid(axProjs); if (!isProjValid) { try { Response.Redirect(Constants.LOGINPAGE, true); } catch (ThreadAbortException) { ​​Thread.ResetAbort(); } } } else ClientScript.RegisterStartupScript(this.GetType(), "Javascript", "showAlertDialog(\"error\", \"Connection details not available.\");", true); } private void GetWebSiteProjectDetails(string dproject) { axProjs = util.CheckForAvailableProjects(); if (axProjs != string.Empty) { var dsproj = axProjs.Split(',').AsEnumerable().Where(x => x.ToLower() == dproject.ToLower()).ToList(); if (dsproj.Count() > 0) { axProjs = dsproj[0]; var isProjValid = util.IsProjectValid(axProjs); if (!isProjValid) { try { Response.Redirect(Constants.LOGINPAGE, true); } catch (ThreadAbortException ex) {​​​​​ Thread.ResetAbort(); }​​​​​ } else { Session["Project"] = axProjs; hdnAxProjs.Value = axProjs; selectProj.Style.Add("display", "none"); axSelectProj.Value = axProjs; Session["queryProj"] = axProjs; } } else { hdnAxProjs.Value = axProjs; var isProjValid = util.IsProjectValid(axProjs); if (!isProjValid) { try { Response.Redirect(Constants.LOGINPAGE, true); } catch (ThreadAbortException ex) {​​​​​ Thread.ResetAbort(); }​​​​​ } } } else ClientScript.RegisterStartupScript(this.GetType(), "Javascript", "showAlertDialog(\"error\", \"Connection details not available.\");", true); } private void GetSocialCredentials(String provider) { ISSO ssoObject = SSO.ObjectHelper(provider); Session["LoginWith"] = provider; if (proj == string.Empty) Session["Project"] = axSelectProj.Value; if (provider == "google") { ssoObject.clientID = googleclientKey; ssoObject.clientSecret = googlesecretKey; ssoObject.redirectUrl = ssoredirecturl + "aspx/signin.aspx"; } else if (provider == "facebook") { ssoObject.clientID = fbclientKey; ssoObject.clientSecret = fbsecretKey; ssoObject.redirectUrl = ssoredirecturl + "aspx/signin.aspx"; } Response.Redirect(ssoObject.GetRequestURL()); } private void FetchUserSocialDetail(String provider, string SSOIdUser = "") { try { if (provider == "google") { var url = Request.Url.Query; if (!string.IsNullOrEmpty(url)) { string queryString = url.ToString(); string[] words = queryString.Split('='); string code = words[1]; if (!string.IsNullOrEmpty(code)) { Google.Request request = new Google.Request(); request.clientID = googleclientKey; request.clientSecret = googlesecretKey; request.redirectUrl = ssoredirecturl + "aspx/signin.aspx"; string parameters = request.GetParameters(code); string response = MakeWebRequest("https://accounts.google.com/o/oauth2/token", "POST", "application/x-www-form-urlencoded", parameters); Google.Token tokenInfo = new JavaScriptSerializer().Deserialize(response); if (tokenInfo != null) { if (!string.IsNullOrEmpty(tokenInfo.access_token)) { var googleInfo = MakeWebRequest("https://www.googleapis.com/oauth2/v1/userinfo?access_token=" + tokenInfo.access_token, "GET"); Google.Info profile = new JavaScriptSerializer().Deserialize(googleInfo); CallLoginService(true, profile.email, axPassword.Value, Session["Project"].ToString(), Session["AxLanguages"].ToString(), profile.id);// tokenInfo.access_token); } } } } Session.Remove("LoginWith"); } else if (provider == "facebook") { if (Request["code"] != null) { Facebook.Request request = new Facebook.Request(); request.clientID = fbclientKey; request.clientSecret = fbsecretKey; request.redirectUrl = ssoredirecturl + "aspx/signin.aspx"; string url = request.GetParameters(Request["code"]); string tokenResponse = MakeWebRequest(url, "GET"); var tokenInfo = new JavaScriptSerializer().Deserialize(tokenResponse); //var facebookInfoJson = MakeWebRequest(ConfigurationManager.AppSettings["FacebookAccessUrl"] + tokenInfo.access_token, "GET"); var facebookInfoJson = MakeWebRequest(request.AccessUrl + tokenInfo.access_token, "GET"); Facebook.Info objUser = new JavaScriptSerializer().Deserialize(facebookInfoJson); CallLoginService(true, objUser.email, axPassword.Value, Session["Project"].ToString(), Session["AxLanguages"].ToString(), tokenInfo.access_token); } Session.Remove("LoginWith"); } else if (provider == "office365") { string officeDetail = SSOIdUser; if (officeDetail != string.Empty) { string[] officeDetails = officeDetail.Split(new[] { "*$*" }, StringSplitOptions.None); CallLoginService(true, officeDetails[1].ToString(), axPassword.Value, Session["Project"].ToString(), Session["AxLanguages"].ToString(), officeDetails[0].ToString()); } Session.Remove("LoginWith"); } else if (provider == "okta") { string officeDetail = SSOIdUser; if (officeDetail != string.Empty) { string[] officeDetails = officeDetail.Split(new[] { "*$*" }, StringSplitOptions.None); CallLoginService(true, officeDetails[1].ToString(), axPassword.Value, Session["Project"].ToString(), Session["AxLanguages"].ToString(), officeDetails[0].ToString()); } Session.Remove("LoginWith"); } else if (provider == "saml") { try { string qstr = util.encrtptDecryptAES(Request.QueryString["res"], false); string[] resQstr = qstr.Split('&'); string samlDetail = string.Empty; foreach (var resVar in resQstr) { string[] resStr = resVar.Split('='); if (resStr[0] == "Project") Session["Project"] = resStr[1]; else if (resStr[0] == "AxLanguages") Session["AxLanguages"] = resStr[1]; else if (resStr[0] == "isMobDevice") isMobDevice = resStr[1]; else if (resStr[0] == "staySignIn") staySignIn = resStr[1]; else if (resStr[0] == "code") samlDetail = resStr[1]; } if (samlDetail != string.Empty) { string[] samlDetails = samlDetail.Split(new[] { "*$*" }, StringSplitOptions.None); CallLoginService(true, samlDetails[1].ToString(), axPassword.Value, Session["Project"].ToString(), Session["AxLanguages"].ToString(), samlDetails[0].ToString()); } } catch (Exception ex) { } Session.Remove("LoginWith"); } } catch (Exception ex) { Session.Remove("LoginWith"); Response.Redirect("error.aspx"); } } /// /// Calling 3rd party web apis. /// /// /// /// /// public string MakeWebRequest(string destinationUrl, string methodName, string contentType = "", string requestJSON = "") { try { HttpWebRequest request = (HttpWebRequest)WebRequest.Create(destinationUrl); request.Method = methodName; if (methodName == "POST") { byte[] bytes = System.Text.Encoding.ASCII.GetBytes(requestJSON); request.ContentType = contentType; request.ContentLength = bytes.Length; using (Stream requestStream = request.GetRequestStream()) { requestStream.Write(bytes, 0, bytes.Length); } } using (HttpWebResponse response = (HttpWebResponse)request.GetResponse()) { if (response.StatusCode == HttpStatusCode.OK) { using (StreamReader reader = new StreamReader(response.GetResponseStream())) { return reader.ReadToEnd(); } } } return null; } catch (WebException webEx) { return webEx.Message; } } protected void btnSubmit_Click(object sender, EventArgs e) { //CallLoginService(false, axUserName.Value, axPassword.Value, axSelectProj.Value, axLanguage.Value); isMobDevice = hdnMobDevice.Value; hybridGUID = hdnHybridGUID.Value; hybridDeviceId = hdnHybridDeviceId.Value; timeZone = hdnTimeZone.Value; if (signedin.Checked) staySignIn = "true"; else staySignIn = "false"; UserIsLoggedIn(false, axUserName.Value, axPassword.Value, hdnProjName.Value, hdnProjLang.Value, staySignIn); // UserIsLoggedIn(false, axUserName.Value, axPassword.Value, axSelectProj.Value, axLanguage.Value, staySignIn); } protected bool UserIsLoggedIn(bool isSSO, string userName, string password, string project, string language, string signedIn) { bool isunlimited = false; if (ConfigurationManager.AppSettings["landingPageHTML"] != null && ConfigurationManager.AppSettings["landingPageHTML"].ToString() == "true") { string axInstance = util.CheckForAvailableProjects(); if (axInstance != string.Empty) { var dsproj = axInstance.Split(',').AsEnumerable().Where(x => x.ToLower() == project.ToLower()).ToList(); if (dsproj.Count() == 0) { ClientScript.RegisterStartupScript(this.GetType(), "Javascript", "javascript:SetLoginErrorMsg('Invalid Schema name.');", true); return false; } else { axProjs = dsproj[0]; var isProjValid = util.IsProjectValid(axProjs); if (!isProjValid) { ClientScript.RegisterStartupScript(this.GetType(), "Javascript", "javascript:SetLoginErrorMsg('Invalid Schema name.');", true); return false; } else { Session["Project"] = axProjs; hdnAxProjs.Value = axProjs; selectProj.Style.Add("display", "none"); axSelectProj.Value = axProjs; if (Session["queryProj"] != null) Session["queryProj"] = axProjs; project = axProjs; } } } } try { if (Application["lstunlimited"] != null) { string lstunlimited = Application["lstunlimited"].ToString(); var lstunlim = lstunlimited.Split(',').Where(x => x == project).ToList(); if (lstunlim.Count > 0) { isunlimited = true; } } } catch (Exception ex) { isunlimited = false; } if (isunlimited == false) { string existSid = string.Empty, existUser = string.Empty, existLic = string.Empty; existUser = userName; string checkValue = string.Empty; var loggedUserList = new List(); loggedUserList = util.GetUserList(project); if (loggedUserList != null) checkValue = string.Join(",", loggedUserList.Select(x => x.ToString()).ToList()); if (loggedUserList != null && checkValue.IndexOf(existUser + "♦") != -1 && Session["loggedUserDetails"] == null) { var prevValue = loggedUserList.AsEnumerable().Where(x => x.Contains(existUser + "♦")).ToList(); Session["loggedUserDetails"] = prevValue[0]; Session["duplicateUser"] = isSSO + "♦" + userName + "♦" + password + "♦" + project + "♦" + language + "♦" + signedIn; if (hybridDeviceId != string.Empty && Session["loggedUserDetails"] != null) { HybridLogin(userName, project, loggedUserList); CallLoginService(isSSO, userName, password, project, language); return false; } else { ClientScript.RegisterStartupScript(this.GetType(), "Javascript", "javascript:CheckIsUserLogged();", true); return true; } } else if (Session["loggedUserDetails"] != null) { if (Session["axApps"] == null || Session["axApps"].ToString() == "") { util.GetAxApps(project); } existSid = Session["loggedUserDetails"].ToString().Split('♦')[1].Split('♣')[0]; existLic = Session["loggedUserDetails"].ToString().Split('♣')[1]; string Svrlic_redis = string.Empty; if (existLic == "limited") { string redisLicDetails = GetServerLicDetails(); if (redisLicDetails != string.Empty && !redisLicDetails.StartsWith("error:")) Svrlic_redis = redisLicDetails; if (Svrlic_redis == string.Empty) { string errorLog = logobj.CreateLog("Calling Signout ws", existSid, "Signout", "new"); string iXml = string.Empty; iXml = ""; if (Session["axApps"] != null && Session["axApps"].ToString() != "") iXml += Session["axApps"].ToString() + HttpContext.Current.Application["axProps"].ToString(); iXml += ""; string result = string.Empty; ASBExt.WebServiceExt asbExt = new ASBExt.WebServiceExt(); result = asbExt.CallLogoutNewWS("Signout", iXml); util.KillSession(); string scriptsPath = HttpContext.Current.Application["ScriptsPath"].ToString(); scriptsPath = scriptsPath + "Axpert\\" + existSid; if (Directory.Exists(scriptsPath) && existSid != "") { try { Directory.Delete(scriptsPath, true); } catch (Exception Ex) { //Do nothing } } } } if (Svrlic_redis == string.Empty) loggedUserList.Remove(existUser + "♦" + existSid + "♣" + existLic); util.SetUserList(project, loggedUserList); Session["loggedUserDetails"] = null; CallLoginService(isSSO, userName, password, project, language); return false; } else { CallLoginService(isSSO, userName, password, project, language); return false; } } else { CallLoginService(isSSO, userName, password, project, language); return false; } } protected void HybridLogin(string existUser, string project, List loggedUserList) { string existSid = string.Empty, existLic = string.Empty; try { if (Session["axApps"] == null || Session["axApps"].ToString() == "") { util.GetAxApps(project); } existSid = Session["loggedUserDetails"].ToString().Split('♦')[1].Split('♣')[0]; existLic = Session["loggedUserDetails"].ToString().Split('♣')[1]; string Svrlic_redis = string.Empty; if (existLic == "limited") { string redisLicDetails = GetServerLicDetails(); if (redisLicDetails != string.Empty && !redisLicDetails.StartsWith("error:")) Svrlic_redis = redisLicDetails; if (Svrlic_redis == string.Empty) { string errorLog = logobj.CreateLog("Calling Signout ws", existSid, "Signout", "new"); string iXml = string.Empty; iXml = ""; if (Session["axApps"] != null && Session["axApps"].ToString() != "") iXml += Session["axApps"].ToString() + HttpContext.Current.Application["axProps"].ToString(); iXml += ""; string result = string.Empty; ASBExt.WebServiceExt asbExt = new ASBExt.WebServiceExt(); result = asbExt.CallLogoutNewWS("Signout", iXml); util.KillSession(); string scriptsPath = HttpContext.Current.Application["ScriptsPath"].ToString(); scriptsPath = scriptsPath + "Axpert\\" + existSid; if (Directory.Exists(scriptsPath) && existSid != "") { try { Directory.Delete(scriptsPath, true); } catch (Exception Ex) { //Do nothing } } } } if (Svrlic_redis == string.Empty) loggedUserList.Remove(existUser + "♦" + existSid + "♣" + existLic); util.SetUserList(project, loggedUserList); Session["loggedUserDetails"] = null; } catch (Exception ex) { } } private void CallLoginService(bool isSSO, string userName, string password, string project, string language, string ssoKey = "") { string redisLicDetails = GetServerLicDetails(); if (redisLicDetails.StartsWith("error:")) { redisLicDetails = redisLicDetails.Replace("error:", ""); string loginPath = Application["LoginPath"].ToString(); //Response.Redirect(loginPath + "?lnmsg=" + redisLicDetails, false); ClientScript.RegisterStartupScript(this.GetType(), "Javascript", "javascript:SetLoginErrorMsg('" + redisLicDetails + "');", true); return; } string proj = project; string browserDetails = GetBrowserDetails(); LoginHelper login = new LoginHelper(proj, browserDetails); login.user = userName; login.password = password; login.selectedLanguage = language; login.isSSO = isSSO; login.isMobile = isMobDevice; login.timeZone = timeZone; login.hybridGUID = hybridGUID; login.hybridDeviceId = hybridDeviceId; login.hybridDefaultPage = hybridDefaultPage; login.staySignedId = staySignIn; login.lic_redis = redisLicDetails; login.lastOpenPage = hdnLastOpenpage.Value; login.loggedBroserId = hdnBwsrid.Value; login.diffTime = GetDiffTime(); if (isSSO) { switch (Session["LoginWith"].ToString()) { case "google": login.SsoName = "ga"; break; case "facebook": login.SsoName = "fb"; break; case "office365": login.SsoName = "of365"; break; case "okta": login.SsoName = "ot"; break; case "windows": login.SsoName = "windows"; break; case "saml": login.SsoName = "saml"; break; } Session.Remove("LoginWith"); } login.privateSsoToken = ssoKey; try { login.CallLoginService(); requestProcess_logtime += login.result.Split('♠')[0]; login.result = login.result.Split('♠')[1]; } catch (Exception ex) { string strErrMsg = ex.Message; if (strErrMsg.ToLower().Contains("ora-")) { strErrMsg = "Error occurred(2). Please try again or contact administrator."; } else if (strErrMsg.Length > 50) { strErrMsg = strErrMsg.Substring(0, 50); strErrMsg += "..."; } else { strErrMsg = ex.Message; } } finally { } if (login.result == string.Empty || login.result.StartsWith(Constants.ERROR) || login.result.Contains(Constants.ERROR)) { XmlDocument xmldoc = new XmlDocument(); xmldoc.LoadXml(login.result); string msg = string.Empty; XmlNode errorNode = xmldoc.SelectSingleNode("/error"); if (login.result.Contains("\n")) login.result = login.result.Replace("\n", ""); foreach (XmlNode msgNode in errorNode) { if (msgNode.Name == "msg") { msg = msgNode.InnerText; break; } } if (msg == string.Empty && errorNode.InnerText != string.Empty) msg = errorNode.InnerText; if (msg != string.Empty && msg.Contains("\n")) msg = msg.Replace("\n", ""); string loginPath = Application["LoginPath"].ToString(); string queryProj = string.Empty; if (Session["queryProj"] != null) queryProj = Session["queryProj"].ToString(); //Unique Constraint Violation error if (msg.Contains("Duplicate entry") || msg.Contains("Violation of PRIMARY KEY constraint")) { Session["Project"] = proj; Session["nsessionid"] = login.sid; try { Response.Redirect(HttpContext.Current.Application["SessExpiryPath"] + "?msg=" + msg, true); } catch (ThreadAbortException ex) {​​​​​ Thread.ResetAbort(); }​​​​​ } else if (msg.ToLower().Contains("ora-")) { msg = "Error occurred(2). Please try again or contact administrator."; ClientScript.RegisterStartupScript(this.GetType(), "Javascript", "javascript:SetLoginErrorMsg('" + msg + "');", true); } else { ClientScript.RegisterStartupScript(this.GetType(), "Javascript", "javascript:SetLoginErrorMsg('" + msg + "');", true); } } else { foreach (var item in Session) { if (item.ToString() != "FDR" && item.ToString() != "allUrls" && item.ToString() != "urlIndex" && item.ToString() != "kernelTime") login.sessions.Add(item.ToString(), Session[item.ToString()] != null ? Session[item.ToString()].ToString() : null); else if (item.ToString() == "allUrls" || item.ToString() == "urlIndex") login.sessions.Add(item.ToString(), null); } Guid guid = Guid.NewGuid(); string guidVal = project + "-" + userName + "-" + guid.ToString(); try { FDW fdwObj = FDW.Instance; bool added = fdwObj.WriteKeyNoSchema(guidVal, Newtonsoft.Json.JsonConvert.SerializeObject(login), 5); if (added == false) HttpContext.Current.Cache.Insert(guidVal, Newtonsoft.Json.JsonConvert.SerializeObject(login)); } catch (Exception) { } strParams.Append(""); strParams.Append(""); strParams.Append(""); if (project == "bafco")//temporary code added to analyse the issue duplicate user issue in BACFO { string AxLoggedUser = userName + "~" + login.oldsid + "~" + login.sid + "~" + guidVal; strParams.Append(""); } requestProcess_logtime += ObjExecTr.RequestProcessTime("Response"); string setIns = string.Empty; if (Session["queryProj"] != null) setIns = "javascript:SetInstance('" + project + "','" + login.sid + "','true','" + requestProcess_logtime + "','" + ObjExecTr.TotalServerElapsTime() + "');"; else setIns = "javascript:SetInstance('" + project + "','" + login.sid + "','false','" + requestProcess_logtime + "','" + ObjExecTr.TotalServerElapsTime() + "');"; ClientScript.RegisterStartupScript(this.GetType(), "Javascript", setIns + "window.document.form2.submit();", true); } } private string GetServerLicDetails() { string licdetails = string.Empty; try { string redisIp = string.Empty; string redisPwd = string.Empty; if (ConfigurationManager.AppSettings["axpLic_RedisIp"] != null) redisIp = ConfigurationManager.AppSettings["axpLic_RedisIp"].ToString(); if (ConfigurationManager.AppSettings["axpLic_RedisPass"] != null) redisPwd = ConfigurationManager.AppSettings["axpLic_RedisPass"].ToString(); if (redisIp != string.Empty) { string rlicConn = util.GetServerLicDetails(redisIp, redisPwd); switch (rlicConn) { case "notConnected": licdetails = "error:Redis Connection details for Axpert license is not proper. Please contact your support person."; break; case "keyNotExists": licdetails = "error:Server seems to be not licensed. Please contact your support person."; break; case "keyNotMatch": licdetails = "error:Redis IP for Axpert license should be set as 127.0.0.1. Please contact your support person."; break; case "keyExists": if (redisPwd != string.Empty) redisPwd = util.EncryptPWD(redisPwd); licdetails = "lic_redis='" + redisIp + "~" + redisPwd + "'"; break; } } else licdetails = string.Empty; } catch (Exception ex) { } return licdetails; } private void OktaHelper() { } [WebMethod] public static string GetCurrLang(string name) { Util.Util utilObj = new Util.Util(); return utilObj.GetConfigAttrValue(name, "AxLanguages"); } [WebMethod] public static string GetCurrCopyRightTxt(string name, string lang) { Util.Util utilObj = new Util.Util(); return utilObj.GetConfigAttrValue(name, "AxCopyRightText", lang); } protected void GoogleBtn_Click(object sender, EventArgs e) { isMobDevice = hdnMobDevice.Value; hybridGUID = hdnHybridGUID.Value; hybridDeviceId = hdnHybridDeviceId.Value; timeZone = hdnTimeZone.Value; if (signedin.Checked) staySignIn = "true"; else staySignIn = "false"; GetSocialCredentials("google"); } protected void FacebookBtn_Click(object sender, EventArgs e) { isMobDevice = hdnMobDevice.Value; hybridGUID = hdnHybridGUID.Value; hybridDeviceId = hdnHybridDeviceId.Value; timeZone = hdnTimeZone.Value; if (signedin.Checked) staySignIn = "true"; else staySignIn = "false"; GetSocialCredentials("facebook"); } protected void RenderLandingPage() { string headerPath = string.Empty; string headerPathFull = string.Empty; string templateText = ""; string isCustomHtml = ""; if (ConfigurationManager.AppSettings["landingPageHTML"] != null) isCustomHtml = ConfigurationManager.AppSettings["landingPageHTML"].ToString(); if (isCustomHtml == "true" && hybridGUID == string.Empty) { try { if (Session["Project"] != null) headerPath = "~/CustomPages/" + Session["Project"].ToString() + ".html"; if (headerPath == string.Empty || (headerPath != string.Empty && !File.Exists(Server.MapPath(headerPath)))) headerPath = "~/CustomPages/AgBizLandingPage.html"; if (File.Exists(Server.MapPath(headerPath))) headerPathFull = Server.MapPath(headerPath); if (headerPathFull != string.Empty) templateText = File.ReadAllText(headerPathFull); } catch (Exception ex) { LogFile.Log logObj = new LogFile.Log(); logObj.CreateLog("LoginPage Templete - \n\tPath- " + headerPath + "\n\tError - " + ex.Message, HttpContext.Current.Session.SessionID, "LoginPage Templete", ""); } LandPageTemplate.Text = templateText; } if(templateText == string.Empty){ divPanelSignin.Style.Add("display", "block"); SigninTemplate.Style.Add("display", "none"); } } private string GetBrowserDetails() { System.Web.HttpBrowserCapabilities browser = HttpContext.Current.Request.Browser; string browserDetails = string.Empty; if (isMobDevice == "True") { string lattitude = "", longitude = ""; if (hybridGUID != string.Empty) { string hybridInfo = string.Empty; try { FDR fObj = (FDR)HttpContext.Current.Session["FDR"]; if (fObj == null) { fObj = new FDR(); } hybridInfo = fObj.StringFromRedis(util.GetRedisServerkey(Constants.AXHYBRIDINFO, hybridGUID), "♠"); } catch (Exception ex) { } if (hybridInfo != string.Empty) { try { JObject parsedHybridInfo = JObject.Parse(hybridInfo); lattitude = parsedHybridInfo["location"]["coords"]["latitude"].ToString(); longitude = parsedHybridInfo["location"]["coords"]["longitude"].ToString(); } catch (Exception ex) { } } browserDetails = "hyb" + "~" + hybridGUID + "~" + lattitude + "~" + longitude + "¿" + timeZone + "¿" + browser.Type + "¿" + browser.Browser + "¿" + browser.Version + "¿" + browser.MajorVersion + "¿" + browser.MinorVersion + "¿" + browser.Platform + "¿" + HttpContext.Current.Request.ServerVariables["HTTP_ACCEPT_LANGUAGE"]; } else { browserDetails = "hyb¿" + timeZone + "¿" + browser.Type + "¿" + browser.Browser + "¿" + browser.Version + "¿" + browser.MajorVersion + "¿" + browser.MinorVersion + "¿" + browser.Platform + "¿" + HttpContext.Current.Request.ServerVariables["HTTP_ACCEPT_LANGUAGE"]; } } else { browserDetails = timeZone + "¿" + browser.Type + "¿" + browser.Browser + "¿" + browser.Version + "¿" + browser.MajorVersion + "¿" + browser.MinorVersion + "¿" + browser.Platform + "¿" + HttpContext.Current.Request.ServerVariables["HTTP_ACCEPT_LANGUAGE"]; } if (browserDetails.Length > 200) browserDetails = browserDetails.Substring(0, 200); return browserDetails; } protected void WindowsBtn_Click(object sender, EventArgs e) { if (ConfigurationManager.AppSettings["ssowindowsdomain"] != null && ConfigurationManager.AppSettings["ssowindowsdomain"].ToString() != string.Empty) { string domainName = ConfigurationManager.AppSettings["ssowindowsdomain"].ToString(); string[] dname = domainName.Split('.'); string adPath = string.Empty; if (dname.Length == 2) adPath = "LDAP://" + domainName + "/DC=" + dname[0] + ",DC=" + dname[1] + ""; else if (dname.Length == 3) adPath = "LDAP://" + domainName + "/DC=" + dname[0] + ",DC=" + dname[1] + ",DC=" + dname[2] + ""; LdapAuthentication adAuth = new LdapAuthentication(adPath); try { Session["LoginWith"] = "windows"; if (true == adAuth.IsAuthenticated(dname[0], axUserName.Value, axPassword.Value)) { string SSOKey = adAuth._guid; string groups = adAuth.GetGroups(); FormsAuthenticationTicket authTicket = new FormsAuthenticationTicket(1, axUserName.Value, DateTime.Now, DateTime.Now.AddMinutes(60), false, groups); string encryptedTicket = FormsAuthentication.Encrypt(authTicket); HttpCookie authCookie = new HttpCookie(FormsAuthentication.FormsCookieName, encryptedTicket); Response.Cookies.Add(authCookie); // Response.Redirect(FormsAuthentication.GetRedirectUrl(axUserName.Value, false)); isMobDevice = hdnMobDevice.Value; hybridGUID = hdnHybridGUID.Value; hybridDeviceId = hdnHybridDeviceId.Value; timeZone = hdnTimeZone.Value; if (signedin.Checked) staySignIn = "true"; else staySignIn = "false"; string thisProj = string.Empty; if (Session["Project"] != null) thisProj = Session["Project"].ToString(); else thisProj = axSelectProj.Value; string thisLang = string.Empty; if (Session["AxLanguages"] != null) thisLang = Session["AxLanguages"].ToString(); else thisLang = axLanguage.Value; CallLoginService(true, axUserName.Value, "", thisProj, thisLang, SSOKey); } else { string loginPath = Application["LoginPath"].ToString(); string queryProj = string.Empty; if (Session["queryProj"] != null) queryProj = Session["queryProj"].ToString(); string msg = "Authentication failed, check username and password."; ClientScript.RegisterStartupScript(this.GetType(), "Javascript", "javascript:SetLoginErrorMsg('" + msg + "');", true); } Session.Remove("LoginWith"); } catch (Exception ex) { Session.Remove("LoginWith"); ClientScript.RegisterStartupScript(this.GetType(), "Javascript", "javascript:SetLoginErrorMsg('" + ex.Message.ToString().Replace("\r\n", "") + "');", true); return; } } else { ClientScript.RegisterStartupScript(this.GetType(), "Javascript", "javascript:SetLoginErrorMsg('Authentication failed, check windows doamin name.');", true); return; } } protected void HybridAppKeepSigninDetails(string hybridDevId, string projName) { string hybridDetails = string.Empty; try { FDR fObj = (FDR)HttpContext.Current.Session["FDR"]; if (fObj == null) { fObj = new FDR(); } hybridDetails = fObj.ReadKeyNoSchema(fObj.MakeKeyName(Constants.REDISHYBRIDINFO, hybridDevId)); if (hybridDetails != string.Empty) { string urlDomain = System.Web.HttpContext.Current.Request.Url.ToString(); urlDomain = urlDomain.Substring(0, urlDomain.ToLower().IndexOf("/aspx/")); string savedUrl = hybridDetails.Split('~')[5]; string prjName = hybridDetails.Split('~')[0]; if (savedUrl == urlDomain && prjName == projName) { signedin.Checked = true; axSelectProj.Value = hybridDetails.Split('~')[0]; axUserName.Value = hybridDetails.Split('~')[1]; KeepMeAutoPwd = hybridDetails.Split('~')[2]; axLanguage.Value = hybridDetails.Split('~')[4]; KeepMeAutoLogin = "true"; } else { KeepMeAutoLogin = "false"; signedin.Checked = true; } } else { KeepMeAutoLogin = "false"; signedin.Checked = true; } } catch (Exception ex) { } } protected string GetDiffTime() { string diffTime = string.Empty; try { string btForLogin = hdnbtforLogin.Value; if (btForLogin == string.Empty) { btForLogin = btforDupLogin; btforDupLogin = string.Empty; } DateTime bst = DateTime.Parse(btForLogin); diffTime = bst.Subtract(DateTime.Parse(StartTime)).TotalMilliseconds.ToString(); } catch (Exception ex) { } return diffTime; } protected void IsLicExist() { try { bool licExist = false; string redisLicDetails = GetServerLicDetails(); if (redisLicDetails != string.Empty && !redisLicDetails.StartsWith("error:")) licExist = true; else { string ScriptsPath = HttpContext.Current.Application["ScriptsPath"].ToString(); string[] files = System.IO.Directory.GetFiles(ScriptsPath, "*.lic"); if (files.Count() > 0) { licExist = true; } } if (licExist == false) { if (ConfigurationManager.AppSettings["EnableAxpertConfiguration"] != null && ConfigurationManager.AppSettings["EnableAxpertConfiguration"].ToString() == "true") Response.Redirect("config.aspx", true); } } catch (Exception ex) { } } protected void SamlBtn_Click(object sender, EventArgs e) { try { Session["LoginWith"] = "saml"; isMobDevice = hdnMobDevice.Value; hybridGUID = hdnHybridGUID.Value; hybridDeviceId = hdnHybridDeviceId.Value; timeZone = hdnTimeZone.Value; if (signedin.Checked) staySignIn = "true"; else staySignIn = "false"; Session["Project"] = axSelectProj.Value; Session["AxLanguages"] = axLanguage.Value; //TODO: specify the SAML provider url here, aka "Endpoint" var samlEndpoint = ConfigurationManager.AppSettings["SamlPartnerIdP"].ToString(); string returnUrl = ConfigurationManager.AppSettings["ssoredirecturl"].ToString(); returnUrl += "aspx/samlresponse.aspx?Project=" + Session["Project"].ToString() + "&AxLanguages=" + Session["AxLanguages"].ToString() + "&isMobDevice=" + isMobDevice + "&staySignIn=" + staySignIn; string SamlIdentifier = ConfigurationManager.AppSettings["SamlIdentifier"].ToString(); var request = new AuthRequest(SamlIdentifier, returnUrl); //redirect the user to the SAML provider //return Redirect(request.GetRedirectUrl(samlEndpoint)); Response.Redirect(request.GetRedirectUrl(samlEndpoint)); } catch (Exception ex) { Session.Remove("LoginWith"); ClientScript.RegisterStartupScript(this.GetType(), "Javascript", "javascript:SetLoginErrorMsg('" + ex.Message.ToString().Replace("\r\n", "") + "');", true); return; } } [WebMethod] public static string KeepSigninWebDetailsNew(string hdnBwsrid) { string result = ""; string kaDetails = string.Empty; try { Util.Util utilObj = new Util.Util(); string ipad = utilObj.GetIpAddress(); ipad = ipad.Replace(".", "1"); string brOwner = hdnBwsrid; string urlDomain = System.Web.HttpContext.Current.Request.Url.ToString(); urlDomain = urlDomain.Substring(0, urlDomain.ToLower().IndexOf("/aspx/")); ipad += "-" + brOwner + "-" + urlDomain; LogFile.Log logobj = new LogFile.Log(); //logobj.CreateLog("Owner:" + brOwner, "BrowserInfo", "BrowserInfo", "", "true"); FDR fObj = (FDR)HttpContext.Current.Session["FDR"]; if (fObj == null) { fObj = new FDR(); } string rsKey = fObj.MakeKeyName(Constants.REDISKEEPWEBINFO, ipad); var KeysList = fObj.GetAllKeys(rsKey); if (KeysList.Count > 0) { ArrayList lstNames = new ArrayList(); foreach (var nameList in KeysList) { lstNames.Add(nameList.ToString().Split(new[] { "keepaliveweb-" }, StringSplitOptions.None)[1]); } string strNames = string.Join(",", lstNames.ToArray()); result = "{\"userlist\":\"" + strNames + "\"}"; } } catch (Exception ex) { } return result; } [WebMethod] public static string loginKeepSigninUser(string usrName, string hdnBwsrid) { string result = ""; try { Util.Util utilObj = new Util.Util(); string ipad = utilObj.GetIpAddress(); ipad = ipad.Replace(".", "1"); string brOwner = hdnBwsrid; string urlDomain = System.Web.HttpContext.Current.Request.Url.ToString(); urlDomain = urlDomain.Substring(0, urlDomain.ToLower().IndexOf("/aspx/")); ipad += "-" + brOwner + "-" + urlDomain; FDR fObj = (FDR)HttpContext.Current.Session["FDR"]; if (fObj == null) { fObj = new FDR(); } string rsKey = fObj.MakeKeyName(Constants.REDISKEEPWEBINFO, ipad) + "-" + usrName; string kaDetails = fObj.ReadKeyNoSchema(rsKey); if (kaDetails != string.Empty) { string savedUrl = kaDetails.Split('~')[4]; if (savedUrl == urlDomain) result = "{\"signedin\":\"true\",\"axSelectProj\":\"" + kaDetails.Split('~')[0] + "\",\"axUserName\":\"" + kaDetails.Split('~')[1] + "\",\"KeepMeAutoPwd\":\"" + kaDetails.Split('~')[2] + "\",\"axLanguage\":\"" + kaDetails.Split('~')[3] + "\",\"hdnLastOpenpage\":\"" + kaDetails.Split('~')[6] + "\"}"; } } catch (Exception ex) { result = ""; } return result; } }