0

Webフォームのグリッドビューがあります。その1つの列にはパスワードがあります。ユーザーがパスワードを変更できるようにしたい。いくつかの問題があります。

編集テンプレートで、パスワード列TextModeをパスワードとして説明しました。そのため、編集ボタンをクリックすると空白で表示されます。

したがって、編集モードをクリックすると、パスワード列にパスワードマスク文字「*」が表示され、ユーザーがパスワードを変更した場合は、データベースで更新されます。

パスワードにSHA1暗号化を使用しているので、dbからパスワード値を取得して、フロントページに保持してもセキュリティ上の問題はないと思います。

4

2 に答える 2

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>
于 2011-07-06T03:58:09.573 に答える
0

EditItemTemplate内のTextBox.次に、以下のようにTextBoxにvalue属性を追加してみてください。

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

この仕事を願っています!!!!

于 2016-11-29T19:37:25.330 に答える