这是什么巫术?
文本框类型的密码如何在不绑定(bind)的情况下知道每个用户的密码长度?
我今天第一次偶然发现这种现象,对发生的事情感到惊讶和困惑?
我试图通过创建一个独立的页面来测试这个来消除用户错误。除了基本的页面结构,这是页面上的所有代码。
ASP.NET
<asp:TextBox ID="txtUsername" runat="server" />
<asp:TextBox ID="txtPassword" runat="server" TextMode="Password"/>
VB.NET
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"
格式填充正确长度的密码。
我没有在任何地方绑定(bind)密码,也没有在存储过程中请求它,但是它与用户名一起存储在数据库中
如果我更改密码文本框上的文本模式或不输出用户名字段,则不再输出密码。
有人可以解释这种行为并指出相关规范吗?
最佳答案
这看起来像您的浏览器自动完成功能。正如 Vishnu Prasad 所说,try adding autocomplete="off"如果您想删除该功能,则作为控件的属性。
关于c# - ASP.NET 无需询问就知道我的密码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37992382/