C# ASP.NET不经询问就知道我的密码? 这是什么巫术?

C# ASP.NET不经询问就知道我的密码? 这是什么巫术?,c#,asp.net,vb.net,webforms,passwords,C#,Asp.net,Vb.net,Webforms,Passwords,文本框类型的密码如何在不绑定的情况下知道每个用户的密码长度? 今天我第一次偶然发现了这种现象,对发生的事情感到惊讶和困惑 我试图通过创建一个独立页面来测试这一点,从而消除用户错误。除了基本页面结构之外,这是页面上的所有代码 ASP.NET <asp:TextBox ID="txtUsername" runat="server" /> <asp:TextBox ID="txtPassword" runat="server" TextMode="Password"/> Us

文本框类型的密码如何在不绑定的情况下知道每个用户的密码长度?

今天我第一次偶然发现了这种现象,对发生的事情感到惊讶和困惑

我试图通过创建一个独立页面来测试这一点,从而消除用户错误。除了基本页面结构之外,这是页面上的所有代码

ASP.NET

<asp:TextBox ID="txtUsername" runat="server" />
<asp:TextBox ID="txtPassword" runat="server" TextMode="Password"/>
Using con As New SqlConnection
  con.ConnectionString = ConfigurationManager.ConnectionStrings("Con").ConnectionString
  Using cmd As New SqlCommand("TM.sp", con)
    cmd.CommandType = CommandType.StoredProcedure

    cmd.Parameters.Add("@UserID", SqlDbType.Int).Value = Request.QueryString("UserID")

    con.Open()
    Using sdr As SqlDataReader = cmd.ExecuteReader()
      While sdr.Read()
        txtUsername.Text = sdr("Username")
      End While
    End Using

  End Using
End Using
在每种情况下,
txtPassword
文本框都会以隐藏的
type=“password”
格式填充正确长度的密码

我没有绑定密码,也没有在存储过程中请求密码,但是它与用户名一起存储在数据库中

如果我更改密码文本框上的文本模式或不输出用户名字段,则密码不再输出


有人能解释一下这种行为并指出相关的规范吗?

这看起来像是您的浏览器自动完成功能。正如Vishnu Prasad所说,如果要删除该功能,请将其作为控件的属性。

这可能是浏览器的自动完成功能feature@the_lotus如果正确,只需将其添加到密码标签
autocomplete=“off”
中进行验证。它不会再让你保存密码了。@the_lotus我想你是对的。有一阵子我以为有什么巫术在发生。请你能发布一个这样的答案吗?我感到困惑的是,这是一个用于创建用户名和密码的用户表,而不是一个logn页面,但是表单已经从登录页面记住了它。