【问题标题】:make a default password for password textboxes that can't be reproduced by the client为客户端无法复制的密码文本框设置默认密码
【发布时间】:2012-03-27 17:12:14
【问题描述】:

是否可以将密码文本框文本设置为用户最终无法重现的文本?

是否有只能从服务器设置的特殊字符?

例如,执行此操作的一种方法是使用 javascript 来防止键入 *,并将文本框文本设置为全部 *。但这很老套。

其动机是能够在服务器上判断用户是否更改了密码,而不是限制他们使用所有 * 的密码,例如。

【问题讨论】:

  • 因此,当用户在密码字段中输入 abc123 时,它会(如果您以某种方式将其设为文本框)会显示为其他内容?
  • 不,它以 gobbledygook 开头,如箭头、制表符、换行符等,然后用户开始输入允许的字符。
  • 就像 Lotus 过去在 Notes 中所做的那样?输入密码时,它会在密码文本框中显示各种字符/图像。
  • 好吧,我正式不明白。为什么要问这个?
  • 你想用这个来完成什么?我不明白您为什么要为用户分配一个他们无法输入的密码。

标签: c# asp.net passwords


【解决方案1】:

,我认为这是不可能的。

编辑

为什么不使用不符合密码长度、允许字符等规则的默认密码? (即使你允许所有字符,允许一个字符的密码也不是一个真正的选择,是吗?)

【讨论】:

  • 我想提供一个默认密码,并且只有在用户更改密码时才保存。但我不想限制他们使用任何密码。
  • 因为我实际上并不知道密码规则。这是第 3 方的事情。
【解决方案2】:

我同意不可能指定用户无法自行输入的字符;但是,对于普通用户来说,输入某些字符可能非常困难。

更详细;使用 Windows 中的标准美国 104 键键盘,可以通过按住 Alt 并使用数字键盘键输入字符代码来输入 Unicode 字符代码。因此,有人可以输入一个没有出现在键盘上的字符,并且不能使用修饰键和字母键的组合来键入。地球上 99% 的计算机用户不知道这是可能的,甚至剩下的 1% 也可能不得不查找特定非标准字符的代码。

现在,其他使用拉丁字符但带有重音符号和其他修改的语言具有更易于访问的修饰键组合,允许用户键入重音字母,就像说英语的人使用大写字母一样。显然,使用不同字符集的地区的用户拥有可以通过单次按键输入看起来非常深奥的符号的键盘。在其中一种文化中的用户可以更轻松地访问美国 104 键用户难以使用的字符。

因此,不可能从代码中指定 Unicode 代码页中的字符,而用户无法在其键盘上复制该字符。但是,他们必须确切知道正在使用的字符及其 Unicode 代码,才能重现它。

【讨论】:

  • 并非完全不可能,因为您可以在 javascript 中对它进行一定程度的限制。但我明白你的意思,谢谢。
  • 您也可以禁用 JavaScript。
  • 这是真的,但如果是这种情况,页面无论如何都不应该工作:-P。
【解决方案3】:

您可能想要使用 TAB 字符(即“\t”)。但我确信有更好的方法来做你想做的任何事情。

编辑

我想我明白你现在的要求了。

这应该做你想做的事。它是 javascript,但它真的很简单。

<input type="password" name="userpass" value="          " onfocus="if(this.pwclick == undefined){ this.default = this.value; this.value=''; this.pwclick = 1;}" onblur="if(this.value == ''){this.value = this.default;this.pwclick = undefined;}" />

然后在后端只需执行以下操作,即使用户关闭了 javascript,也会导致 javascript 兼容。

if(userpass.Trim().Length > 0{
  # actions to change the user's password
}

【讨论】:

  • 制表符?粘贴一个是微不足道的。我希望我能想到他们想要做什么。坦率地感到困惑..
  • 我知道,我知道。 -- 也许.....他想在数据库中为每个用户设置一个不可键入的字符,这些字符会以一种与用户密码连接的方式表现得像盐一样。我不知道。
  • 不,这里的目标是不必编写特殊的 javascript 来实现,所以如果用户第一次更改密码字段,它应该清除它,但如果他/她随后更改它(在提交之前)它不会清除该字段。另外,不要禁止默认密码“****”说。我的目标可以通过更多的工作来实现,但是如果有一种方法可以使用无法从客户端分配的特殊字符来设置它会容易得多。
【解决方案4】:

只需添加另一个使用与您初始化密码文本框相同的文本初始化的隐藏字段。然后如果他们提交的时候还是一样,就给他们一个错误。

【讨论】:

    猜你喜欢
    • 2012-10-14
    • 1970-01-01
    • 1970-01-01
    • 2011-05-06
    • 2014-05-22
    • 1970-01-01
    • 1970-01-01
    • 2011-12-20
    相关资源
    最近更新 更多