【问题标题】:MVC 5 - Prevent password storingMVC 5 - 防止密码存储
【发布时间】:2015-06-12 07:56:53
【问题描述】:

我需要防止在我的 MVC 5 站点上存储用户名/密码。

我已将表单和输入元素都设置为 autocomplete="off",并且我确定该站点正在运行 HTML5。出于所有意图和目的,它不应该存储登录信息,但它仍然会在登录后提示输入。

按照建议,我尝试将输入字段名称更改为“用户名”和“密码”以外的名称,但没有任何改变。

我什至尝试过在表单外添加虚拟用户名和密码隐藏元素的技巧,也在表单内尝试过。没有喜悦。

我也试过用jQuery做,没有成功

$("input").attr("autocomplete", "off");

表单标签:

<form action="/" autocomplete="off" class="form-horizontal" method="post" role="form" novalidate="novalidate">

输入元素:

<input autocomplete="off" class="form-control" data-val="true" data-val-regex="Mobile number must be a Numbers only." data-val-regex-pattern="[0-9]*\.?[0-9]+" data-val-required="The Mobile field is required." id="Username" name="Username" type="text" value="">

在 IE 和 chrome 中测试,但提示保存信息。

任何帮助或建议将不胜感激。银行如何防止这种情况发生?

【问题讨论】:

  • 您的问题是否与浏览器在表单字段中保留密码有关?
  • @ramiramilu 是的,我不希望保存登录凭据。假设,使用 HTML5,您可以指定 autocomplete=off 向浏览器发出信号,该浏览器不应该存储信息,但它不工作。
  • 不,这不是骗人的,我特别声明我已经完成了大量类似帖子中建议的所有内容,但没有一个建议的解决方案对我有用。
  • 如果是浏览器保留了该值,则可能是浏览器看到了一个名为 Username 的字段,并认为您正在存储用户凭据,因此应该从内置的密码管理器中获取它们。也许将字段(如果可以的话)重命名为其他名称?

标签: asp.net-mvc html


【解决方案1】:

我测试了很多解决方案,最后,有了这个。

HTML 代码

@Html.TextBoxFor(m => m.UserName, new { @class = "form-control", @placeholder = "UserName", @autofocus = "", @autocomplete = "off" })

@Html.TextBoxFor(m => m.Password, new { @class = "form-control", @placeholder = "Password", @autocomplete = "off" })

CSS 代码

#Password {
    text-security: disc;
    -webkit-text-security: disc;
    -moz-text-security: disc;
}

JavaScript 代码

window.onload = function () {
    init();
}

function init() {
    var x = document.getElementsByTagName("input")["Password"];
    var style = window.getComputedStyle(x);
    console.log(style);

    if (style.webkitTextSecurity) {
        // Do nothing
    } else {
        x.setAttribute("type", "password");
    }
}

【讨论】:

    猜你喜欢
    • 2017-05-04
    • 1970-01-01
    • 2012-04-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-21
    相关资源
    最近更新 更多