protected override void OnPreRender(EventArgs e) { HtmlAnchor anchor = new HtmlAnchor(); anchor.ID = "bindingUrlTemplate"; anchor.HRef = GetBindingPageUrl(); this.bindingUrlContainer.Text = anchor.GetHtml(); this.simulateDateRow.Visible = PassportSignInSettings.GetConfig().UseSimulateTime; if (this._Owner != null) { this.culture.Value = this._Owner.PageData.Properties.GetValue("SignInCulture", "zh-CN"); string tenantCode = PassportManager.GetTenantCodeFromContext(); if (tenantCode.IsNullOrEmpty()) { tenantCode = this._Owner.PageData.Properties.GetValue("TenantCode", string.Empty); } this.tenantCode.Text = tenantCode; } base.OnPreRender(e); }
/// <summary> /// 从Cookie中装载页面配置信息 /// </summary> public void LoadFromCookie() { HttpContext context = HttpContext.Current; HttpCookie cookie = context.Request.Cookies[PassportSignInSettings.GetConfig().SignInPageDataCookieKey]; if (cookie != null) { try { XmlDocument xmlDoc = new XmlDocument(); xmlDoc.LoadXml(Base64StringToCookieValue(cookie.Value)); this.userID = XmlHelper.GetSingleNodeText(xmlDoc.DocumentElement, "UID"); this.dontSaveUserID = XmlHelper.GetSingleNodeValue(xmlDoc.DocumentElement, "DSUID", false); this.autoSignIn = XmlHelper.GetSingleNodeValue(xmlDoc.DocumentElement, "ASI", false); this.LoadProperties(xmlDoc.DocumentElement); } catch (System.Exception) { //忽略cookie中的内容错误 } } }
private void signInControl_AfterSignIn(SignInContext context) { if (context.ResultType == SignInResultType.Success) { if (PassportSignInSettings.GetConfig().UseSimulateTime) { context.SignInInfo.Properties["SimulateTime"] = this.simulateDate.Value; IPersistTimePoint persister = TimePointSimulationSettings.GetConfig().Persister; if (persister != null) { OguObjectCollection <IUser> users = OguMechanismFactory.GetMechanism().GetObjects <IUser>(SearchOUIDType.LogOnName, context.SignInInfo.UserID); if (users.Count > 0) { persister.SaveTimePoint(users[0].ID, this.simulateDate.Value); TimePointContext tpc = new TimePointContext(); tpc.UseCurrentTime = this.simulateDate.Value == DateTime.MinValue; tpc.SimulatedTime = this.simulateDate.Value; tpc.SaveToCookie(); } } } } }
private void AdjustSignInTimeout(ISignInInfo signInInfo) { if (PassportSignInSettings.GetConfig().HasSlidingExpiration) { signInInfo.SignInTime = SNTPClient.AdjustedTime; } }
protected override void OnPreRender(EventArgs e) { this.simulateDateRow.Visible = PassportSignInSettings.GetConfig().UseSimulateTime; Page.ClientScript.RegisterHiddenField("buttonName", this.SignInButton.ClientID); base.OnPreRender(e); }
private void AdjustSignInTimeout(ISignInInfo signInInfo) { if (PassportSignInSettings.GetConfig().HasSlidingExpiration) { signInInfo.SignInTime = DateTime.Now; } }
private void LogOffAllAPP(LogOffInfo info) { List <AppLogOffCallBackUrl> urls = info.GetAllRelativeAppsLogOffCallBackUrl(); this.RenderCallBackUrls(urls); PassportSignInSettings.GetConfig().PersistSignInInfo.DeleteRelativeSignInInfo(info.SessionID); PassportManager.ClearSignInCookie(); }
private void LogOffAllAPP(string sessionID, string appID, string callbackUrl) { ExceptionHelper.CheckStringIsNullOrEmpty(sessionID, "sessionID"); ExceptionHelper.CheckStringIsNullOrEmpty(appID, "appID"); ExceptionHelper.CheckStringIsNullOrEmpty(callbackUrl, "callbackUrl"); List <AppLogOffCallBackUrl> list = PassportSignInSettings.GetConfig().PersistSignInInfo.GetAllRelativeAppsLogOffCallBackUrl(sessionID); if (AppLogOffCallBackUrlExist(list, appID, callbackUrl) == false) { AppLogOffCallBackUrl au = new AppLogOffCallBackUrl(); au.AppID = appID; au.LogOffCallBackUrl = callbackUrl; list.Add(au); } HtmlTable table = new HtmlTable(); tableContainer.InnerHtml = string.Empty; tableContainer.Controls.Add(table); foreach (AppLogOffCallBackUrl au in list) { HtmlTableRow tRow = new HtmlTableRow(); table.Controls.Add(tRow); HtmlTableCell cell = new HtmlTableCell(); cell.InnerText = " "; tRow.Controls.Add(cell); cell = new HtmlTableCell(); tRow.Controls.Add(cell); HtmlImage img = new HtmlImage(); img.Align = "absmiddle"; img.Src = au.LogOffCallBackUrl; img.Alt = img.Src; cell.Controls.Add(img); cell = new HtmlTableCell(); cell.InnerText = string.Format(Translate("退出应用程序{0}"), au.AppID); tRow.Controls.Add(cell); } PassportSignInSettings.GetConfig().PersistSignInInfo.DeleteRelativeSignInInfo(sessionID); PassportManager.ClearSignInCookie(); }
/// <summary> /// 如果登录信息依然有效,可以自动转到应用页面 /// </summary> /// <param name="signInInfo">登录信息</param> private void AutoSignIn(ISignInInfo signInInfo) { #if DELUXEWORKSTEST Debug.WriteLine("Timeout Datetime: " + signInInfo.SignInTimeout.ToString("yyyy-MM-dd HH:mm:ss"), "SignInPage Check"); #endif if (IsSignInInfoInvalid(signInInfo) == false) { AdjustSignInTimeout(signInInfo); PassportSignInSettings.GetConfig().PersistSignInInfo.SaveSignInInfo(signInInfo); signInInfo.SaveToCookie(); RedirectToAppUrl(GenerateTicket(signInInfo)); } }
protected void signInControl_AfterSignIn(SignInContext context) { if (context.ResultType == SignInResultType.Success) { string consistentID = PassportSignInSettings.GetConfig().UserIDConverter.GetUserConsistentID(context.UserID); OpenIDBinding binding = new OpenIDBinding(); binding.UserID = consistentID; binding.OpenID = Request.QueryString.GetValue("openID", string.Empty); binding.OpenIDType = Request.QueryString.GetValue("openIDType", string.Empty); PassportSignInSettings.GetConfig().PersistOpenIDBinding.SaveOpenIDBinding(binding); } }
protected override void OnPreRender(EventArgs e) { if (OpenIDIdentity.Current != null) { this.openIDContainer.InnerText = OpenIDIdentity.Current.OpenID; OpenIDBinding binding = PassportSignInSettings.GetConfig().PersistOpenIDBinding.GetBindingByOpenID(OpenIDIdentity.Current.OpenID); if (binding != null) { this.userIDContainer.InnerText = binding.UserID; } } base.OnPreRender(e); }
private void ShowBindingLinks() { OpenIDBindingCollection bindings = PassportSignInSettings.GetConfig().PersistOpenIDBinding.GetBindingsByUserID(DeluxeIdentity.CurrentUser.ID); foreach (OpenIDBinding binding in bindings) { string openIDUrl = string.Format("../AnonymousTestPage/OpenIDIdentityTest.aspx?openID={0}", binding.OpenID); string anchor = string.Format("<a href=\"{0}\">{0}</a>", openIDUrl); string name = string.Format("OpenID({0})", binding.OpenIDType); ShowSinglePrincipalHtmlInfo(principalInfo, name, anchor); } }
private SignInContext DoPostAuthenticateOP(ISignInInfo signInInfo) { SignInContext result = new SignInContext( SignInResultType.Success, signInInfo.UserID, signInInfo, CollectPageData(), (string)PassportWebControlHelper.GetControlValue(this.TemplateControl, "clientEnv", "Value", string.Empty), null); OnSignInComplete(result); PassportSignInSettings.GetConfig().PersistSignInInfo.SaveSignInInfo(signInInfo); signInInfo.SaveToCookie(); return(result); }
private void RenderBindings(Control parent) { OpenIDBindingCollection bindings = PassportSignInSettings.GetConfig().PersistOpenIDBinding.GetBindingsByUserID(DeluxeIdentity.CurrentUser.ID); SocialPassportSettings settings = SocialPassportSettings.GetConfig(); foreach (OpenIDBinding binding in bindings) { SocialConnectionConfigurationElement element = settings.Connections[binding.OpenIDType]; if (element != null) { RenderBindingInfo(parent, binding, element); } } }
private void signInControl_AfterSignIn(SignInContext context) { if (context.Exception == null) { if (PassportSignInSettings.GetConfig().UseSimulateTime) { SaveSimulateTime(context, this.simulateDate.Value); } SetCultureInfo(context, this.culture.Value); TenantContext.Current.TenantCode = this.tenantCode.Text; context.SignInInfo.TenantCode = this.tenantCode.Text; context.PageData.Properties["SignInCulture"] = this.culture.Value; context.PageData.Properties["TenantCode"] = this.tenantCode.Text; } }
/// <summary> /// 判断SignInInfo状态,如果在SignInInfo合法情况下,基于Session的Cookie,或者用户选择自动登录的进行自动登录。 /// </summary> private void Initialize() { Control signInBtn = PassportWebControlHelper.FindControlRecursively(this.TemplateControl, "SignInButton"); if (signInBtn != null && signInBtn is IButtonControl) { ((IButtonControl)signInBtn).Click += new EventHandler(SignInButton_Click); } if (Page.IsPostBack == false) { //从Cookie中得到登录信息 ISignInInfo signInInfo = SignInInfo.LoadFromCookie(); if (signInInfo != null) { Trace.WriteLine(string.Format("认证服务,从cookie中得到用户{0}的认证信息", signInInfo.UserID), "PassportSDK"); } this._PageData.LoadFromCookie(); PassportSignInSettings settings = PassportSignInSettings.GetConfig(); if (IsSignInInfoInvalid(signInInfo) == false) //SignIn Info非法 { if (settings.IsSessionBased || this.PageData.AutoSignIn) { if (IsSelfAuthenticate == false) { AutoSignIn(signInInfo); //May be execute Response.End when redirect to app's url } } } if (Page.IsPostBack == false) { InitForm(this.PageData); } Page.Response.Expires = 0; } }
/// <summary> /// 存入Cookie中 /// </summary> public void SaveToCookie() { HttpContext context = HttpContext.Current; XmlDocument xmlDoc = new XmlDocument(); xmlDoc.LoadXml("<Data/>"); XmlHelper.AppendNode(xmlDoc.DocumentElement, "UID", this.userID); XmlHelper.AppendNode(xmlDoc.DocumentElement, "DSUID", this.dontSaveUserID.ToString()); XmlHelper.AppendNode(xmlDoc.DocumentElement, "ASI", this.autoSignIn.ToString()); this.AppendPropertiesNode(xmlDoc.DocumentElement); HttpCookie cookie = new HttpCookie(PassportSignInSettings.GetConfig().SignInPageDataCookieKey); cookie.Value = CookieValueToBase64String(xmlDoc.InnerXml); cookie.Expires = DateTime.MaxValue; context.Response.Cookies.Add(cookie); }
protected ISignInUserInfo signInControl_InitSignInControl() { DefaultSignInUserInfo result = null; string openID = Request.QueryString.GetValue("openID", string.Empty); if (openID.IsNotEmpty()) { OpenIDBinding binding = PassportSignInSettings.GetConfig().PersistOpenIDBinding.GetBindingByOpenID(openID); if (binding != null) { result = new DefaultSignInUserInfo(); string logonName = PassportSignInSettings.GetConfig().UserIDConverter.GetUserLogonName(binding.UserID); result.UserID = logonName; result.OriginalUserID = logonName; } } return(result); }
private void LogOffAllAPP(string sessionID, string appID, string callbackUrl) { ExceptionHelper.CheckStringIsNullOrEmpty(sessionID, "sessionID"); ExceptionHelper.CheckStringIsNullOrEmpty(appID, "appID"); ExceptionHelper.CheckStringIsNullOrEmpty(callbackUrl, "callbackUrl"); List <AppLogOffCallBackUrl> urls = PassportSignInSettings.GetConfig().PersistSignInInfo.GetAllRelativeAppsLogOffCallBackUrl(sessionID); if (AppLogOffCallBackUrlExist(urls, appID, callbackUrl) == false) { AppLogOffCallBackUrl au = new AppLogOffCallBackUrl(); au.AppID = appID; au.LogOffCallBackUrl = callbackUrl; urls.Add(au); } this.RenderCallBackUrls(urls); PassportSignInSettings.GetConfig().PersistSignInInfo.DeleteRelativeSignInInfo(sessionID); PassportManager.ClearSignInCookie(); }
private static void ChangeUserPassword(string userID, string oldPassword, string newPassword) { PassportSignInSettings.GetConfig().UserInfoUpdater.ChangePassword(userID, oldPassword, newPassword); }
private void RemoveBinding(string openID) { PassportSignInSettings.GetConfig().PersistOpenIDBinding.RemoveOpenIDBinding(openID); }
protected override void OnPreRender(EventArgs e) { this.simulateDateRow.Visible = PassportSignInSettings.GetConfig().UseSimulateTime; base.OnPreRender(e); }
private IAuthenticator2 GetAuthenticator2() { return(PassportSignInSettings.GetConfig().Authenticator2); }
private void InitForm(SignInPageData pd) { if (pd.DontSaveUserID == false) { PassportWebControlHelper.SetControlValue(this.TemplateControl, "signInName", "Text", pd.UserID); } PassportWebControlHelper.SetControlValue(this.TemplateControl, "autoSignIn", "Checked", pd.AutoSignIn); PassportWebControlHelper.SetControlValue(this.TemplateControl, "dontSaveUserName", "Checked", pd.DontSaveUserID); PassportWebControlHelper.SetControlValue(this.TemplateControl, "autoSignIn", "Visible", PassportSignInSettings.GetConfig().IsSessionBased == false); }