在编辑模式下的gridview中的密码列中显示密码char *

时间:2011-07-01 05:20:20

标签: gridview passwordbox editmode

我有一个webform gridview。在那一列是密码。我想允许用户更改密码。问题很少。

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

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

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

2 个答案:

答案 0 :(得分:0)

最后,我找到了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>

答案 1 :(得分:0)

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

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

希望这项工作!!!!