Инструмент веб-администрирования ASP.net Забыть пользователей? - PullRequest
1 голос
/ 11 октября 2011

Эй, ребята, у меня странная проблема.Я использую встроенный инструмент веб-администрирования ASP.NET, чтобы пользователи могли войти на страницу, которую я создал для своей работы.Пока что только 4 человека ежедневно заходят в инструмент.Вход в систему работает отлично, но время от времени кто-то больше не может войти в систему.Это происходило примерно 3 раза, поэтому я начинаю думать, что это не они просто забывают свои пароли.

После того, как это произошло впервые, я настроил инструмент для восстановления пароля, но даже это не помогло.не работаетВвод имени пользователя просто приводит к ошибке « Мы не смогли получить доступ к вашей информации. Пожалуйста, повторите попытку. », что странно, потому что, когда я захожу в бэкэнд, пользователь все еще там.Итак, я должен удалить пользователя и воссоздать его, что работает на данный момент, потому что мы не используем логины для чего-либо другого, кроме входа в систему, никакая информация не связана с пользователями.Это может стать проблемой в будущем, если мы увеличим масштаб.

Мне было интересно, если у кого-то была подобная проблема, или знает, в чем проблема?Я пытался что-то исследовать, но ничего не мог найти, или я просто искал неправильные условия поиска.Я использую Visual Studio 2010 Express, и все формы входа являются встроенными элементами управления с настройками по умолчанию.

Дайте мне знать, если вам нужна дополнительная информация.

Из Интернета.файл конфигурации:

<identity impersonate="true"/>
<authentication mode="Forms">
    <forms loginUrl="~/marcalendar/login.aspx"/>
</authentication>
<authorization>
    <allow roles="admin" />
    <allow roles="users" />
<deny users="?"/>
</authorization>

1 Ответ

2 голосов
/ 11 октября 2011

Я думаю, что наиболее вероятной проблемой здесь является то, что ваши пользователи блокируются (конфигурация по умолчанию для членства в ASP не дает четкой обратной связи о том, почему попытка входа не удалась, а только что она не удалась), а не aspnetdbкак-то потерять / испортить пользовательскую информацию - хотя я думаю, что возможно все: -).

Посмотрите в файле Web.Config на корневом уровне вашего проекта.Вы должны увидеть что-то вроде этого:

<configuration>
    ...Some other stuff here...
    <system.web>
        ...Some other stuff here...
        <membership>
            <providers>
                <clear/>
                <add name="AspNetSqlMembershipProvider" type="System.Web.Security.SqlMembershipProvider" connectionStringName="ApplicationServices" enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="false" requiresUniqueEmail="false" maxInvalidPasswordAttempts="5" minRequiredPasswordLength="4" minRequiredNonalphanumericCharacters="0" passwordAttemptWindow="10" applicationName="/"/>
            </providers>
        </membership>

<add name=.../> является важной частью там.Вы видите кучу параметров настройки для ваших настроек входа.Важными здесь являются

  • passwordAttemptWindow="10", И
  • maxInvalidPasswordAttempts="5".

Это означает, что если пользователь неверно введет свой пароль 5 разчерез 10 минут они блокируются (вы можете программно проверить это, используя свойство MembershipUser.IsLockedOut ).

Если это проблема, вам нужно реализовать MembershipUser.UnlockUser (дайте мне знать, если вам нужна помощь и с этой частью).Тогда вы можете просто использовать такой код:

MembershipUser usr = Membership.GetUser(userName); //userName is a string variable containing the username you're trying to unlock
usr.UnlockUser();

Если проблема не в этом, дайте мне знать, и я смогу редактировать / удалять этот ответ.

...