【问题标题】:ASP.NET Knows my password without asking?ASP.NET 不问就知道我的密码?
【发布时间】:2016-10-25 19:59:16
【问题描述】:

这是什么巫术?

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

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

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

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" 格式填充正确长度的密码。

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

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

有人可以解释这种行为并指出相关规范吗?

【问题讨论】:

  • 这可能是浏览器自动完成功能
  • @the_lotus 是对的,只需将此添加到密码标签autocomplete="off" 即可验证。它将不再填满
  • 浏览器可让您保存密码。
  • @the_lotus 我认为你是对的。有一瞬间,我以为发生了某种巫术。请问你能发布这个效果的答案吗?我很困惑,因为这是一个用于创建用户名和密码的用户表,而不是登录页面,但表单已经从登录页面记住了它。

标签: c# asp.net vb.net webforms passwords


【解决方案1】:

这看起来像是您的浏览器自动完成功能。就像 Vishnu Prasad 所说,try adding autocomplete="off" 如果您想删除该功能,则将其作为您控件的属性。

【讨论】:

    猜你喜欢
    • 2011-06-28
    • 1970-01-01
    • 1970-01-01
    • 2023-02-03
    • 2020-04-12
    • 2012-05-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多