/// <summary> /// Redirect the current request to SSO site for authentication check /// </summary> /// <param name="Path"></param> private void RedirectToSSOSite() { string originalRequestUrl = Path; //Clean up all current QueryString parameters before redirecting to SSO site originalRequestUrl = UriUtil.RemoveParameter(originalRequestUrl, AppConstants.UrlParams.REQUEST_ID); originalRequestUrl = UriUtil.RemoveParameter(originalRequestUrl, AppConstants.UrlParams.ACTION); originalRequestUrl = UriUtil.RemoveParameter(originalRequestUrl, AppConstants.UrlParams.TOKEN); string ssoSiteUrl = string.Format(SSOSiteUrlConfig, HttpUtility.UrlEncode(originalRequestUrl)); //Redirect to SSO site Response.Redirect(ssoSiteUrl); }
/// <summary> /// Redirect to Login page /// </summary> /// <param name="Urlpath"></param> protected void RedirectToLoginPage() { //Before redirecting to login URL, remove the Token and RequestId parameter value from the QueryString (If they are there) //that were appended by the SSO sites. Reason is, these two parameter values are now expired. //From the login screen, user will log in and the SSO site will re-generate the Token and RequestId string originalRequestUrl = Request.Url.OriginalString; originalRequestUrl = UriUtil.RemoveParameter(originalRequestUrl, AppConstants.UrlParams.REQUEST_ID); originalRequestUrl = UriUtil.RemoveParameter(originalRequestUrl, AppConstants.UrlParams.TOKEN); //Current request is redirected from SSO site. So, do not further redirect to SSO site SessionAPI.RequestRedirectFlag = false; Response.Redirect(VirtualPathUtility.ToAbsolute(string.Format("{0}?{1}={2}", LoginUrl, AppConstants.UrlParams.RETURN_URL, HttpUtility.UrlEncode(originalRequestUrl)))); }
/// <summary> /// Logs out the current user /// </summary> protected void Logout() { if (CurrentUser == null) { RedirectToLoginPage(); return; } string currentURL = Request.Url.OriginalString; currentURL = UriUtil.RemoveParameter(currentURL, AppConstants.UrlParams.REQUEST_ID); currentURL = UriUtil.RemoveParameter(currentURL, AppConstants.UrlParams.TOKEN); string ssoSiteUrl = string.Format(SSOSiteUrlConfig, HttpUtility.UrlEncode(currentURL)); string LogoutUrl = string.Format("{0}&{1}={2}&{3}={4}", ssoSiteUrl, AppConstants.UrlParams.ACTION, AppConstants.ParamValues.LOGOUT, AppConstants.UrlParams.TOKEN, SessionAPI.CurrentUser.Token); CurrentUser = null; Response.Redirect(LogoutUrl); }
/// <summary> /// Performs login action onto server /// </summary> /// <param name="UserName"></param> /// <param name="Password"></param> protected bool Login(string UserName, string Password) { CurrentUser = AuthUtil.Instance.Authenticate(UserName, Password); if (CurrentUser != null) { string returnUrl = Request.Params[AppConstants.UrlParams.RETURN_URL]; if (string.IsNullOrEmpty(returnUrl)) { returnUrl = UriUtil.GetAbsolutePathForRelativePath(DefaultUrl); } else { returnUrl = UriUtil.RemoveParameter(returnUrl, AppConstants.UrlParams.ACTION); } string ssoSiteUrl = string.Format(SSOSiteUrlConfig, HttpUtility.UrlEncode(returnUrl)); Response.Redirect(string.Format("{0}&{1}={2}", ssoSiteUrl, AppConstants.UrlParams.TOKEN, CurrentUser.Token)); } return(false); }