gpt4 book ai didi

c# - 重置密码恢复状态

转载 作者:太空狗 更新时间:2023-10-29 19:39:38 25 4
gpt4 key购买 nike

情况是这样的:

我的登录页面上使用了一个 ASP.NET PasswordRecovery ( http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.passwordrecovery.aspx) 控件。

当我点击“恢复链接”时,它会询问我的用户名,我输入它,点击“发送我的密码”按钮,它会通知我已经发送了一封电子邮件,然后我可以点击“返回”链接返回登录控件并继续。

我的问题是:如果我再次单击“恢复链接”,控件将停留在它的最后状态,即成功状态或失败状态。如果停留在成功状态,用户将无法输入任何用户名。只会显示最后一条成功的消息,不能重复之前的相同过程。

我想将 PasswordRecovery 控件重置为其初始状态,以便用户可以执行另一项密码恢复操作而无需刷新当前页面(按 F5)。

我玩了一下 View 状态 + 销毁/重新创建控件但没有成功。

以前有人遇到过这个问题吗?

提前致谢!

最佳答案

我确认没有干净的方法来执行此操作(通过 ILSpy),请参阅下面的示例以了解稍微脏的方法。基本上我们使用反射来获取 CurrentView 属性,这是一个内部属性,然后我们将 PasswordReset 控件的当前 View 设置为三种可能状态之一:用户名 (0)、问题 (1) ,或成功 (2)。

设计师

<form id="form1" runat="server">
<div>
<asp:PasswordRecovery ID="pwr" runat="server"></asp:PasswordRecovery>
</div>
<span>Set Recover State: </span>
<asp:RadioButtonList ID="rblChangeState" runat="server" AutoPostBack="True"
onselectedindexchanged="rblChangeState_SelectedIndexChanged">
<asp:ListItem Text="Username" Value="0" />
<asp:ListItem Text="Question" Value="1" />
<asp:ListItem Text="Success" Value="2" />
</asp:RadioButtonList>
</form>

代码隐藏

protected void rblChangeState_SelectedIndexChanged(object sender, EventArgs e)
{
Type t = pwr.GetType();
PropertyInfo viewSetter = t.GetProperty("CurrentView", BindingFlags.Default | BindingFlags.NonPublic | BindingFlags.Instance);
viewSetter.SetValue(pwr, Convert.ToInt32(rblChangeState.SelectedValue), null);
}

关于c# - 重置密码恢复状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11417759/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com