ASP.NET中利用JQuery AJAX修改用户密码

一、新建数据库,在项目App_Data右击,添加一个数据库,新建一个UserInfo表,表里设UserName,Password两个字段

image

二、新建一个Default.aspx页面,用表格简单布局,代码如下

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
<body>
    <form id="form1" runat="server">
    <table>
        <tr>
            <td>
                旧密码:
            </td>
            <td>
                <asp:TextBox ID="txtOldPass" runat="server"></asp:TextBox><asp:RequiredFieldValidator
                    ID="RequiredFieldValidator1" runat="server" ErrorMessage="RequiredFieldValidator"
                    ControlToValidate="txtOldPass">*</asp:RequiredFieldValidator><span id="msg"></span>
            </td>
        </tr>
        <tr>
            <td>
                新密码:
            </td>
            <td>
                <asp:TextBox ID="txtNewPass" runat="server"></asp:TextBox><asp:RequiredFieldValidator
                    ID="RequiredFieldValidator2" runat="server" ErrorMessage="RequiredFieldValidator"
                    ControlToValidate="txtNewPass">*</asp:RequiredFieldValidator>
            </td>
        </tr>
        <tr>
            <td>
                确认新密码:
            </td>
            <td>
                <asp:TextBox ID="txtConfirmPass" runat="server"></asp:TextBox><asp:RequiredFieldValidator
                    ID="RequiredFieldValidator3" runat="server" ErrorMessage="RequiredFieldValidator"
                    Display="Dynamic" ControlToValidate="txtConfirmPass">*</asp:RequiredFieldValidator><asp:CompareValidator
                        ID="CompareValidator1" runat="server" ErrorMessage="CompareValidator" ControlToCompare="txtNewPass"
                        ControlToValidate="txtConfirmPass">两次密码不一致</asp:CompareValidator>
            </td>
        </tr>
        <tr>
            <td colspan="2" align="center">
                <asp:Button ID="btnModify" runat="server" Text="修改" />
            </td>
        </tr>
    </table>
    </form>
</body>

三、新建一个WebService,名为:CheckPassword.asmx,注意将 [System.Web.Script.Services.ScriptService]这个取消注释

代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
/// <summary>
   /// CheckPassword 的摘要说明
   /// </summary>
   [WebService(Namespace = "http://tempuri.org/")]
   [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
   [System.ComponentModel.ToolboxItem(false)]
   // 若要允许使用 ASP.NET AJAX 从脚本中调用此 Web 服务,请取消对下行的注释。
   [System.Web.Script.Services.ScriptService]
   public class CheckPassword : System.Web.Services.WebService
   {
 
       [WebMethod]
       public string IsCorrectPass(string username, string password)
       {
           string connStr = ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString;
           string word = "";
           using (SqlConnection conn = new SqlConnection(connStr))
           {
               using (SqlCommand cmd = new SqlCommand(string.Format("select password from UserInfo where UserName='{0}'", username), conn))
               {
                   conn.Open();
                   word = cmd.ExecuteScalar().ToString();
                   if (word == password)
                   {
                       return "密码正确";
                   }
                   else
                   {
                       return "密码错误";
                   }
               }
           }
       }
   }

四、Default.aspx页面里加入以下JS代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<script type="text/javascript">
    $(function() {
        $("#<%=txtOldPass.ClientID %>").blur(function() {
            $.ajax({
                type: "POST",
                contentType: "application/json",
                url: "CheckPassword.asmx/IsCorrectPass",
                data: "{username:'admin',password:'" + $(this).val() + "'}",      //这里为了方便用户名就只有一个,
                dataType: "json",                                                 //数据库里也就一条数据
                success: function(result) {
                    $("#msg").text(result.d);
                }
            });                                                
        });
    });
</script>

其实很简单,就是练习JQuery AJAX,作为刚刚学习JQuery的我,就当是练笔吧。

五、最后的运行效果为

imageimage

作为练习没有实现加密,密码也直接显示出来了。当输入正确的密码,然后光标离开文本框就立即判断密码输入是否正确。

源代码下载地址:下载

posted @   BobTian  阅读(1632)  评论(4编辑  收藏  举报
编辑推荐:
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· 字符编码:从基础到乱码解决
· Open-Sora 2.0 重磅开源!
点击右上角即可分享
微信分享提示