gpt4 book ai didi

c# - ASP.net 更改密码验证程序

转载 作者:行者123 更新时间:2023-11-30 22:10:01 24 4
gpt4 key购买 nike

我正在从事一个电子商务项目,它有一个管理面板和购物面板。

我已经完成编程,现在手动测试每个 aspx 和 cs 文件。

问题是,我有一个与 session 和数据库相关的更改密码功能。问题是我的 aspx 文件中有一个验证器,但它们不起作用。这是我的代码;

<asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" runat="Server">
<asp:Panel ID="Panel1" runat="server" DefaultButton="btnChange">
<div class="userForm">
<div class="formTitle">
Change Your Password
</div>
<div class="formContent">
<asp:TextBox ID="txtPassword" placeholder="Type your new password" runat="server" TextMode="Password"></asp:TextBox>
<asp:RequiredFieldValidator ID="RequiredFieldValidator3" runat="server" ControlToValidate="txtPassword"
ErrorMessage="RequiredFieldValidator" ForeColor="Red" Display="Dynamic" ValidationGroup="signup">Enter a password</asp:RequiredFieldValidator>
<br />
<asp:TextBox ID="txtAgainPassword" placeholder="Repeat your new password" runat="server" TextMode="Password"></asp:TextBox>
<asp:RequiredFieldValidator ID="RequiredFieldValidator9" runat="server" BorderColor="Red"
ControlToValidate="txtAgainPassword" Display="Dynamic" ErrorMessage="Enter password again."
ForeColor="Red" ValidationGroup="signup"></asp:RequiredFieldValidator>
<asp:CompareValidator ID="CompareValidator1" runat="server" ControlToCompare="txtPassword"
ControlToValidate="txtAgainPassword" Display="Dynamic" ErrorMessage="Password don't match."
ForeColor="Red" ValidationGroup="signup"></asp:CompareValidator>
<br />
<asp:Button ID="btnChange" runat="server" Text="Submit" OnClick="btnChange_Click" />
<br />
<asp:Label ID="lblError" Visible="False" ForeColor="Green" runat="server"></asp:Label></div>
</div>
</asp:Panel>
</asp:Content>

.cs 部分在下面

protected void btnChange_Click(object sender, EventArgs e)
{
using (ZirveMarketDBEntities context = new ZirveMarketDBEntities())
{
// Atanan sessiona gore user bilgisini al - guvenlik icin onemli
int id = (int)Session["CustomerID"];
Customer cust = context.Customers.Where(i => i.CustomerID == id).FirstOrDefault();

cust.Password = txtPassword.Text;
context.SaveChanges();
}
lblError.Visible = true;
lblError.Text = "Password successfully updated";
}

问题是,我有一个用于输入新密码的 2 框,然后输入新密码。即使它们为空,即使它们与密码不匹配,仍然会随着第一部分的值而变化。如果它们不匹配或为空,我不想运行服务器端代码。我究竟做错了什么?非常感谢帮助。

最佳答案

将 'ValidationGroup="signup"' 属性添加到 btnChange 按钮。

我还建议将以下内容添加到点击事件(在其他任何事情之前),以防客户端禁用 Javascript:

Page.Validate("signup");

if (!Page.IsValid)
{
return;
}

关于c# - ASP.net 更改密码验证程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21122590/

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