C# 密码重置–;有一个弹出窗口,确认密码何时重置

C# 密码重置–;有一个弹出窗口,确认密码何时重置,c#,javascript,html,asp.net,C#,Javascript,Html,Asp.net,我被指派做这项任务。我的页面包含两个文本框(用于新密码和确认)和一个保存数据的按钮。在按钮单击事件中,我首先验证两个文本框是否为空,是否存在不匹配,或者输入的值是否不符合规则。用户在两个文本框中输入正确的密码并单击保存后,此时会弹出一条消息“确认密码更改”。只有单击“确定”后,数据才会保存到数据库中。当用户单击“取消”时,数据不会保存并返回false 我在这里写下我的代码: protected void btnChangePassword_Click(object sender, EventAr

我被指派做这项任务。我的页面包含两个文本框(用于新密码和确认)和一个保存数据的按钮。在按钮单击事件中,我首先验证两个文本框是否为空,是否存在不匹配,或者输入的值是否不符合规则。用户在两个文本框中输入正确的密码并单击保存后,此时会弹出一条消息“确认密码更改”。只有单击“确定”后,数据才会保存到数据库中。当用户单击“取消”时,数据不会保存并返回false

我在这里写下我的代码:

protected void btnChangePassword_Click(object sender, EventArgs e)
{
    if (txtNewPassword.Text.Trim().Length <= 0)
    {
    }

    if (txtConfirmNewPassword.Text.Trim().Length <= 0)
    {
    }

    if (txtNewPassword.Text.Trim() != txtConfirmNewPassword.Text.Trim())
    {
    }
    else
    {
        //correct format and save the values.here i want to see a popup msg first and then click ok save values,otherwise exit..
    }
}
protectedvoid btnChangePassword\u单击(对象发送者,事件参数e)
{

if(txtNewPassword.Text.Trim().Length除非在用户填写新密码字段后添加中间步骤,否则仅通过服务器代码是不可能实现的


最好的方法是使用javascript或jQuery验证客户端上的密码字段,如果txtNewPassword==txtConfirmNewPassword,则显示确认对话框,然后调用服务器保存更改。

以下是java脚本中用于客户端验证的示例代码在onclientclick事件中调用函数

function validate() {

               if (document.getElementById("<%=txtNewPassword.ClientID%>").value == 0) {
                    alert("Please Enter New Password.");
                    document.getElementById("<%=txtNewPassword.ClientID%>").focus();
                    return false;
                }
              if (document.getElementById("<%=txtConfirmPassword.ClientID%>").value == 0) {
                    alert("Please Enter Confirm Password.");
                    document.getElementById("<%=txtConfirmPassword.ClientID%>").focus();
                    return false;
                }
                if (document.getElementById("<%=txtNewPassword.ClientID%>").value != document.getElementById("<%=txtConfirmPassword.ClientID%>").value) {
                    alert("Provided Confirmation Password is wrong.");
                    document.getElementById("<%=txtConfirmPassword.ClientID%>").focus();
                    return false;
                }
                    alert("do you want to save password");
            }
函数验证(){
if(document.getElementById(“”).value==0){
警报(“请输入新密码”);
document.getElementById(“”.focus();
返回false;
}
if(document.getElementById(“”).value==0){
警报(“请输入确认密码”);
document.getElementById(“”.focus();
返回false;
}
if(document.getElementById(“”.value!=document.getElementById(“”.value)){
警报(“提供的确认密码错误”);
document.getElementById(“”.focus();
返回false;
}
警报(“您想保存密码吗”);
}
您可以使用弹出所需的任何ifram或页面

  • 您需要创建confirm.aspx以确认密码更改

  • 要从代码隐藏打开confirm.aspx,请使用此代码

    ClientScript.RegisterStartupScript(Page.GetType(), "key", "window.onload=function(){parent.location.href = 'confirm.aspx';}", true);
    

单靠服务器代码是不可能做到的
:事实并非如此。页面的后处理可以以
div
的形式呈现一个“弹出”框。AJAX甚至可以实现这一点。除非您以任何方式添加客户端代码,否则仅通过服务器代码是完全正确的,因为ASP.NET的本质是,通过页面上的
VIEWSTATE
隐藏元素授予持久性。变量会前后传递。当页面发布到服务器时,可以根据其
VIEWSTATE
重新呈现页面。然后可以将页面上的现有服务器端对象更改为be根据需要显示或隐藏。我一直在我的页面上这样做。恭喜,但是你仍然错了,你只引用了我的一部分句子,现在走开。Westie,我不知道你怎么能一开始就不同意单靠服务器代码是做不到的,然后立即转而谈论div(客户端!)还有ajax(客户端!)。你实际上是在没有意识到的情况下同意了Ted。