public ActionResult Login(FormCollection formCollection) { var tmpLoginModel = new ScrAccount(); TryUpdateModel(tmpLoginModel, formCollection); string token = string.Format("username={0}&password={1}&returnurl={2}&sso={3}", System.Net.WebUtility.UrlEncode(tmpLoginModel.UserName), System.Net.WebUtility.UrlEncode(tmpLoginModel.Password), System.Net.WebUtility.UrlEncode(tmpLoginModel.ResponseRelativePath), System.Net.WebUtility.UrlEncode(this.HttpContext.Request.Url.Authority)); token = Encrypt.EncryptString(token, Parameters.ENCRYPTION_KEY); //string certificate = System.Configuration.ConfigurationManager.AppSettings.Get("SSOCerfticate"); //Security.Cryptography.RSACrypto rsaCrypto = rsaCrypto = new Security.Cryptography.RSACrypto(certificate); //token = rsaCrypto.Encrypt(token); token = System.Net.WebUtility.UrlEncode(token); //logger.Log(null, "Call to login handler", "User:"******" Request for domain: " + tmpLoginModel.ResponseDomain, Verbosity.Trace); string url = string.Format("{2}://{0}/chk.login?token={1}", tmpLoginModel.ResponseDomain, token, Protocol.ToString()); //1. Navigate to the login http handler. return(Redirect(url)); }
public ActionResult Index() { //logger.Log(null, "DifficultyFactorLabour conversion", "test message", Verbosity.Trace); //Check for the existence of the auth cookie (on SSO) for the received domain. var tmpLoginModel = new ScrAccount(); string languageCode = "nl-BE"; tmpLoginModel.SetLanguage(languageCode); if (Request.QueryString.Count >= 2) { tmpLoginModel.ResponseDomain = Request.QueryString["domain"]; tmpLoginModel.ResponseRelativePath = Request.QueryString["ReturnUrl"]; HttpCookie currDomainCookie = HttpContext.Request.Cookies.Get(tmpLoginModel.ResponseDomain); if (currDomainCookie != null) { string userName = currDomainCookie["userName"]; try { //The cookie already exists. //1. Refresh the cookies for all domains for which the user has the access rights. CreateOrRefreshAllCookies(tmpLoginModel.ResponseDomain, userName); }catch (Exception ex) { //logger.Log(null, "Index error on CreateOrRefreshAllCookies", "User:"******" Request for domain: " + tmpLoginModel.ResponseDomain + "Error message:" + ex.Message, Verbosity.Trace); } //2. Navigate to the source domain create cookie handler. //Redirect string url = string.Format("{0}://{1}/{2}?user={3}&returnUrl={4}", Protocol.ToString(), tmpLoginModel.ResponseDomain, "auth.login", System.Net.WebUtility.UrlEncode(userName), tmpLoginModel.ResponseRelativePath); //logger.Log(null, "Already logged in. Navigate to the authentication handler of the domain.", "User:"******" Request for domain: " + tmpLoginModel.ResponseDomain, Verbosity.Trace); Response.Redirect(url); } } if (Request.QueryString.Count >= 3) { string err = Request.QueryString["err"]; if (err != null) { tmpLoginModel.IsValid = false; ModelState.AddModelError("Password change failed!", err); } } //The SSO cookie doesn't exist. //1. Login page SSO. string viewName = (tmpLoginModel.ResponseDomain == null ? "Index" : GetLoginViewName(tmpLoginModel.ResponseDomain)); return(View(viewName, tmpLoginModel)); }
public ActionResult ValidationResult() { var tmpLoginModel = new ScrAccount(); //string language = System.Net.WebUtility.UrlDecode(this.HttpContext.Request["language"]); //if (!string.IsNullOrEmpty(language)) //{ // tmpLoginModel.SetLanguage(language); //} string userName = System.Net.WebUtility.UrlDecode(this.HttpContext.Request["username"]); bool isValid = Convert.ToBoolean(this.HttpContext.Request["isValid"]); tmpLoginModel.ResponseDomain = this.HttpContext.Request["domain"]; tmpLoginModel.ResponseRelativePath = this.HttpContext.Request["returnurl"]; string viewName = (tmpLoginModel.ResponseDomain == null ? "Index" : GetLoginViewName(tmpLoginModel.ResponseDomain)); // logger.Log(null, "Validation result received", "User:"******" Request for domain: " + tmpLoginModel.ResponseDomain + "Is valid? " + isValid, Verbosity.Trace); if (isValid == true) { try { try { CreateOrRefreshAllCookies(tmpLoginModel.ResponseDomain, userName); } catch (Exception ex) { //logger.Log(null, "Validation result error on CreateOrRefreshAllCookies", "User:"******" Request for domain: " + tmpLoginModel.ResponseDomain + "Error message:" + ex.Message, Verbosity.Trace); string errMessage = string.Format("{0} - {1}", ex.Message, ex.StackTrace); ModelState.AddModelError("error!", errMessage); //return View("Index", tmpLoginModel); return(View(viewName, tmpLoginModel)); } //Redirect to http handler for creating cookie on domain (e.g. dca,claimshub) and navigation to the requested domain page. //redirect user to authentication handler string token = string.Format("user={0}&returnUrl={1}", userName, tmpLoginModel.ResponseRelativePath); token = Encrypt.EncryptString(token, Parameters.ENCRYPTION_KEY); token = System.Net.WebUtility.UrlEncode(token); string url = string.Format("{0}://{1}/{2}?token={3}", Protocol.ToString(), tmpLoginModel.ResponseDomain, "auth.login", token); //logger.Log(null, "Validation result. Redirect to authentication handler.", "User:"******" Request for domain: " + tmpLoginModel.ResponseDomain, Verbosity.Trace); Response.Redirect(url); } catch (Exception ex) { //logger.Log(null, "Validation result error. Not correctly mapped.", "User:"******" Request for domain: " + tmpLoginModel.ResponseDomain + "Error message:" + ex.Message, Verbosity.Trace); string errMessage = string.Format("{0} is not mapped correctly. Contact your administrator for help.", tmpLoginModel.ResponseDomain); ModelState.AddModelError("Domain not mapped!", errMessage); } } tmpLoginModel.IsValid = false; ModelState.AddModelError("InvalidCredentials", "Log in failed. Invalid credentials!"); //return View("Index", tmpLoginModel); return(View(viewName, tmpLoginModel)); }
public ActionResult Login() { var tmpLoginModel = new ScrAccount(); return(View("Login", tmpLoginModel)); }