【问题标题】:Display password char * in the password column in gridview in edit mode在编辑模式下gridview的密码栏中显示密码char *
【发布时间】:2011-07-01 05:20:19
【问题描述】:

我有一个网络表单网格视图。在那一栏中是密码。我想允许用户更改密码。很少有问题。

在编辑模板中,我提到了密码列 TextMode 作为密码。所以当我点击编辑按钮时它显示为空白。

因此,当我单击编辑模式时,密码列应显示密码掩码字符“*”,如果用户更改密码,则应在数据库中更新。

我正在使用 SHA1 加密密码所以我想我可以从数据库中检索密码值并将其保留在首页不会有任何安全问题。

【问题讨论】:

    标签: gridview passwordbox editmode


    【解决方案1】:

    最后我用 jQuery 找到了解决这个问题的方法。
    可能对某人有用。

            <asp:TemplateField HeaderText="Password">
                <EditItemTemplate> 
                    <asp:TextBox ID="txtPassword" runat="server" Width="98%"
                        TextMode="Password" MaxLength="50" Text='<%# Bind("UserPassword") %>' CssClass="blankPassword"></asp:TextBox>
                    <asp:RequiredFieldValidator ID="rfvPassword" runat="server" ErrorMessage="Required"
                        Display="Dynamic" ControlToValidate="txtPassword" ValidationGroup="Saving" CssClass="RequiredValidationMessage"></asp:RequiredFieldValidator>
                </EditItemTemplate>
                <ItemTemplate>
                    <asp:Label ID="lblPassword" runat="server" Text='*****'></asp:Label>
                </ItemTemplate>
                <FooterTemplate>
                        <asp:TextBox ID="txtNewPassword" runat="server" Text='<%# Bind("UserPassword") %>' Width="95%"
                            TextMode="Password" MaxLength="50"></asp:TextBox>
                        <asp:RequiredFieldValidator ID="rfvNewPassword" runat="server" ErrorMessage="Required"
                            Display="Dynamic" ControlToValidate="txtNewPassword" ValidationGroup="Adding" CssClass="RequiredValidationMessage"></asp:RequiredFieldValidator>
                </FooterTemplate>
                <ItemStyle Width="30%" />
            </asp:TemplateField>       
    
    
    <script type="text/javascript" language="javascript" charset="utf-8">
            $(document).ready(function() {
    
                $(function() {
                    $("input[id$='txtPassword']").live("click", function() {
                    $tb = $(this);
                        $("#PasswordEdited").val("true");
                        $tb.val("");                        
                    })
                });
                $(function() {
                    $(".blankPassword").each(function() {
                        $tb = $(this);
                        $tb.val('*****');
                        $tb.removeClass("blankPassword");
                    })
                });
            });
    </script>
    

    【讨论】:

      【解决方案2】:

      EditItemTemplate 中的TextBox。然后尝试将value 属性添加到TextBox,如下所示。

      <asp:TextBox ID="txtNewPassword" runat="server" Text='<%# Bind("UserPassword") %>' Value='<%# Bind("UserPassword") %>' Width="95%" TextMode="Password" MaxLength="50"></asp:TextBox>
      

      希望这项工作!!!!

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2010-10-24
        • 2013-03-30
        • 2014-03-20
        • 1970-01-01
        • 2013-04-23
        • 2017-08-22
        • 1970-01-01
        相关资源
        最近更新 更多