/// <summary> /// 进行初始化,加载TemplatePath页面,JavaScript脚本,进行用户SignInInfo状态判断 /// </summary> /// <param name="e"></param> protected override void OnInit(EventArgs e) { base.OnInit(e); if (this.DesignMode == false) { ISignInUserInfo signInUserInfo = OnInitSignInControl(); if (signInUserInfo != null) { ITicket ticket = Ticket.Create(SignInInfo.Create(signInUserInfo, (bool)PassportWebControlHelper.GetControlValue(this.TemplateControl, "dontSaveUserName", "Checked", false), (bool)PassportWebControlHelper.GetControlValue(this.TemplateControl, "autoSignIn", "Checked", false)), HttpContext.Current.Request.QueryString["ip"]); RedirectToAppUrl(ticket); } else { if (TemplatePath != string.Empty) { this.templateControl = Page.LoadControl(TemplatePath); this.Controls.Add(this.templateControl); InitScript(); Initialize(); } } } }
private void InitScript() { Page.ClientScript.RegisterClientScriptBlock(this.GetType(), "SignInScriptOnload", Resource.signInControlScript); string template = ResourceHelper.LoadStringFromResource( Assembly.GetExecutingAssembly(), "MCS.Library.Passport.Controls.SignInControlInitScript.htm"); string script = string.Format(template, PassportWebControlHelper.GetControlValue(this.TemplateControl, "signInName", "ClientID", string.Empty), PassportWebControlHelper.GetControlValue(this.TemplateControl, "password", "ClientID", string.Empty)); Page.ClientScript.RegisterStartupScript( this.GetType(), "SignInScriptOnload", script, true); Control detailErrorMessageLink = PassportWebControlHelper.FindControlRecursively(this.TemplateControl, "detailErrorMessageLink"); if (detailErrorMessageLink != null && detailErrorMessageLink is HtmlContainerControl) { ((HtmlContainerControl)detailErrorMessageLink).Attributes["onclick"] = string.Format("return doDetailErrorMessageClick(\"{0}\");", PassportWebControlHelper.GetControlValue(this.TemplateControl, "detailErrorMessage", "ClientID", string.Empty)); } }
private void InitScript() { Page.ClientScript.RegisterClientScriptBlock(this.GetType(), "SignInScriptOnload", Resource.changePasswordScript, true); Page.ClientScript.RegisterStartupScript(this.GetType(), "ChangePasswordScriptOnload", string.Format("window.attachEvent(\"onload\", new Function(\"initControlsFocus('{0}', '{1}')\"));", PassportWebControlHelper.GetControlValue(this.TemplateControl, "signInName", "ClientID", string.Empty), PassportWebControlHelper.GetControlValue(this.TemplateControl, "oldPassword", "ClientID", string.Empty)), true); Control detailErrorMessageLink = PassportWebControlHelper.FindControlRecursively(this.TemplateControl, "detailErrorMessageLink"); if (detailErrorMessageLink != null && detailErrorMessageLink is HtmlContainerControl) { ((HtmlContainerControl)detailErrorMessageLink).Attributes["onclick"] = string.Format("doDetailErrorMessageClick(\"{0}\")", PassportWebControlHelper.GetControlValue(this.TemplateControl, "detailErrorMessage", "ClientID", string.Empty)); } this.updateButton.OnClientClick = string.Format("beforeSubmit(\"{0}\", \"{1}\", \"{2}\", \"{3}\")", PassportWebControlHelper.GetControlValue(this.TemplateControl, "signInName", "ClientID", string.Empty), PassportWebControlHelper.GetControlValue(this.TemplateControl, "errorMessage", "ClientID", string.Empty), PassportWebControlHelper.GetControlValue(this.TemplateControl, "newPassword", "ClientID", string.Empty), PassportWebControlHelper.GetControlValue(this.TemplateControl, "confirmPassword", "ClientID", string.Empty)); IAttributeAccessor backButton = (IAttributeAccessor)PassportWebControlHelper.FindControlRecursively(this.TemplateControl, "backButton"); if (backButton != null) { backButton.SetAttribute("backUrl", this.GetBackUrl()); backButton.SetAttribute("onclick", "onBackButtonClick();"); } }
private SignInPageData CollectPageData() { string strSignInName = (string)PassportWebControlHelper.GetControlValue(this.TemplateControl, "signInName", "Text", string.Empty); this.PageData.UserID = strSignInName; this.PageData.DontSaveUserID = (bool)PassportWebControlHelper.GetControlValue(this.TemplateControl, "dontSaveUserName", "Checked", false); this.PageData.AutoSignIn = (bool)PassportWebControlHelper.GetControlValue(this.TemplateControl, "autoSignIn", "Checked", false); return(this.PageData); }
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 ITicket AuthenticateUser() { HttpRequest request = HttpContext.Current.Request; string strSignInName = (string)PassportWebControlHelper.GetControlValue(this.TemplateControl, "signInName", "Text", string.Empty); string strPassword = (string)PassportWebControlHelper.GetControlValue(this.TemplateControl, "password", "value", string.Empty); ISignInUserInfo userInfo = DefaultAuthenticate(strSignInName, strPassword); ISignInInfo signInInfo = SignInInfo.Create(userInfo, (bool)PassportWebControlHelper.GetControlValue(this.TemplateControl, "dontSaveUserName", "Checked", false), (bool)PassportWebControlHelper.GetControlValue(this.TemplateControl, "autoSignIn", "Checked", false)); SignInContext signInContext = DoPostAuthenticateOP(signInInfo); ITicket ticket = Ticket.Create(signInInfo, request.QueryString["ip"]); SaveFormStatus(signInContext.PageData); return(ticket); }
private void SignInButton_Click(object sender, System.EventArgs e) { try { ITicket ticket = AuthenticateUser(); RedirectToAppUrl(ticket); } catch (System.Threading.ThreadAbortException) { } catch (System.Exception ex) { System.Exception realEx = ex.GetRealException(); string strSignInName = (string)PassportWebControlHelper.GetControlValue(this.TemplateControl, "signInName", "Text", string.Empty); SignInContext signInContext = new SignInContext( SignInResultType.Fail, strSignInName, null, CollectPageData(), (string)PassportWebControlHelper.GetControlValue(this.TemplateControl, "clientEnv", "Value", string.Empty), realEx); OnSignInComplete(signInContext); PassportWebControlHelper.SetControlValue(this.TemplateControl, "errorMessage", "Text", HttpUtility.HtmlEncode(realEx.Message)); PassportWebControlHelper.SetControlValue(this.TemplateControl, "errorMessage", "ForeColor", Color.Red); PassportWebControlHelper.SetControlValue(this.TemplateControl, "detailErrorMessage", "Text", HttpUtility.HtmlEncode(ex.StackTrace)); Control detailErrorMessageLink = PassportWebControlHelper.FindControlRecursively(this.TemplateControl, "detailErrorMessageLink"); if (detailErrorMessageLink != null && detailErrorMessageLink is HtmlContainerControl) { ((HtmlContainerControl)detailErrorMessageLink).Style["display"] = "block"; } } }
private void updateButton_Click(object sender, EventArgs e) { try { string userID = PassportWebControlHelper.GetControlValue(this.TemplateControl, "signInName", "Text", string.Empty); string oldPassword = PassportWebControlHelper.GetControlValue(this.TemplateControl, "oldPassword", "Value", string.Empty); string newPassword = PassportWebControlHelper.GetControlValue(this.TemplateControl, "newPassword", "Value", string.Empty); ChangeUserPassword(userID, oldPassword, newPassword); if (AutoRedirect) { HttpContext.Current.Response.Redirect(this.ReferUrl, true); } else { if (string.IsNullOrEmpty(this.SuccessUrl) == false) { HttpContext.Current.Response.Redirect(this.SuccessUrl, true); } } } catch (System.Exception ex) { PassportWebControlHelper.SetControlValue(this.TemplateControl, "errorMessage", "Text", HttpUtility.HtmlEncode(ExceptionHelper.GetRealException(ex).Message)); PassportWebControlHelper.SetControlValue(this.TemplateControl, "errorMessage", "ForeColor", Color.Red); PassportWebControlHelper.SetControlValue(this.TemplateControl, "detailErrorMessage", "Text", HttpUtility.HtmlEncode(ex.StackTrace)); Control detailErrorMessageLink = PassportWebControlHelper.FindControlRecursively(this.TemplateControl, "detailErrorMessageLink"); if (detailErrorMessageLink != null && detailErrorMessageLink is HtmlContainerControl) { ((HtmlContainerControl)detailErrorMessageLink).Style["display"] = "block"; } } }