asp .net mvc сменить пароль firefox - PullRequest
0 голосов
/ 21 мая 2011

// ОБНОВЛЕНИЕ: описанная проблема возникает только в браузере Firefox

Я написал небольшое приложение на mvc 2.0, которое использует aspnetdb для управления пользователями и стандартными контроллерами учетных записей / представлениями и т. Д.

Моя проблема заключается в том, что когда я пытаюсь изменить пароль для пользователя, иногда после ввода старого пароля и установки нового пароля, открывается другое окно, где я могу (?) Выбрать пользователя для изменения пароля.

Это очень странно, это происходит только с некоторыми пользователями в приложении, в то время как для других это работает вполне нормально.

Может ли кто-нибудь подсказать мне, что происходит?

Обновление:

Я не знаю, в чем разница, сначала я думал, что это зависит от ролей, которые они определили в приложении, но затем этот шаблон не удался. Я здесь не использую js

Действия моего контроллера выглядят так:

        [Authorize]
    public ActionResult ChangePassword()
    {
        ViewData["PasswordLength"] = this.MembershipService.MinPasswordLength;
        return View();
    }

    [Authorize]
    [HttpPost]
    public ActionResult ChangePassword(ChangePasswordModel model)
    {
        if (ModelState.IsValid)
        {
            if (this.MembershipService.ChangePassword(User.Identity.Name, model.OldPassword, model.NewPassword))
            {
                return RedirectToAction("ChangePasswordSuccess");
            }
            else
            {
                ModelState.AddModelError(String.Empty, "Błędne hasło aktualne lub nowe nie spełnia wymagań.");
            }
        }

        // If we got this far, something failed, redisplay form
        ViewData["PasswordLength"] = this.MembershipService.MinPasswordLength;
        return View(model);
    }

И ChangePassword.aspx

<%@ Page Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage<TheApp.Web.Models.ChangePasswordModel>" %>

<asp:Content ID="changePasswordTitle" ContentPlaceHolderID="TitleContent" runat="server">
Change Password
</asp:Content>

<asp:Content ID="changePasswordContent" ContentPlaceHolderID="MainContent" runat="server">
    <h2>Change Password</h2>
    <p>
        Min password length: <%= Html.Encode(ViewData["PasswordLength"]) %>.
    </p>

    <% using (Html.BeginForm()) { %>
        <%= Html.ValidationSummary(true, "Message.") %>
        <div>
            <fieldset>
                <legend>Account Information</legend>
                <div class="editor-label">
                    <%= Html.LabelFor(m => m.OldPassword) %>
                    <%= Html.HiddenFor(m => m.UserName) %>
                </div>
                <div class="editor-field">
                    <%= Html.PasswordFor(m => m.OldPassword) %>
                    <%= Html.ValidationMessageFor(m => m.OldPassword) %>
                </div>

                <div class="editor-label">
                    <%= Html.LabelFor(m => m.NewPassword) %>
                </div>
                <div class="editor-field">
                    <%= Html.PasswordFor(m => m.NewPassword) %>
                    <%= Html.ValidationMessageFor(m => m.NewPassword) %>
                </div>

                <div class="editor-label">
                    <%= Html.LabelFor(m => m.ConfirmPassword) %>
                </div>
                <div class="editor-field">
                    <%= Html.PasswordFor(m => m.ConfirmPassword) %>
                    <%= Html.ValidationMessageFor(m => m.ConfirmPassword) %>
                </div>

                <p>
                    <input type="submit" value="Change Password" />
                </p>
            </fieldset>
        </div>
    <% } %>
</asp:Content>

... и странное окно со списком пользователей (кстати, неполное) отображается еще до

public ActionResult ChangePassword(ChangePasswordModel model)

вызов.

1 Ответ

0 голосов
/ 23 мая 2011

Я добавил на мой взгляд autocomplete="off" во все поля ввода, и это помогло:)

...