【问题标题】:Disable web browser password save禁用网络浏览器密码保存
【发布时间】:2012-01-20 05:49:37
【问题描述】:

我有一个使用 JSF 2.0 制作的简单登录页面。通常在每个登录页面中,Web 浏览器都会建议用户为其用户名保存密码。

我在 Oracle 的网站上看到用户必须进行身份验证,当我输入我的用户名和密码时,浏览器不会询问我是否要保存我的用户名和密码。也许有一种方法可以从登录页面的代码中禁用它。

这可能吗?

【问题讨论】:

    标签: jsf jsf-2 jboss


    【解决方案1】:

    您基本上需要将autocomplete="off" 属性添加到HTML <form> 元素。但是,<h:form> 不支持此属性。它仅在单个 <h:inputText><h:inputSecret> 组件上受支持。

    所以,应该这样做:

    <h:form>
        <h:inputText value="#{auth.username}" required="true" autocomplete="off" />
        <h:inputSecret value="#{auth.password}" required="true" autocomplete="off" />
        <h:commandButton value="Login" action="#{auth.login}" />
        <h:messages />
    </h:form>
    

    &lt;h:form&gt; 上的新 autocomplete 属性计划用于 JSF 2.2。另见JSF spec issue 418

    或者,如果您使用带有j_security_check 的容器管理登录,无论如何都需要一个普通的HTML &lt;form&gt;,那么只需将其添加到那里:

    <form action="j_security_check" method="post" autocomplete="off">
        <input type="text" name="j_username" />
        <input type="password" name="j_password" />
        <input type="submit" value="Login" />
    </form>
    

    另见:

    【讨论】:

      【解决方案2】:

      您还可以使用 Jquery 来阻止自动完成选项。因此,我们不需要针对各个字段。

      <script>
      $(function(){
      $("#formID").attr("autocomplete", "off");
      });
      </script>
      

      how to do autocomplete="off" at form level in JSF

      【讨论】:

        【解决方案3】:

        如果添加“自动完成”不起作用,您可以试试这个技巧。您应该在具有这种样式的真实文本之后放置一个假的“inputText”:

        <p:inputText style="display: none;"/>
        

        【讨论】:

        • 你测试了吗?它隐藏整个文本字段
        • 这不会隐藏整个文本字段吗?
        • 绝对是的,我测试过了。
        猜你喜欢
        • 2015-06-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-11-04
        • 2022-12-19
        • 1970-01-01
        • 2010-09-28
        • 1970-01-01
        相关资源
        最近更新 更多