Проверка подлинности форм .NET не работает - PullRequest
0 голосов
/ 20 марта 2011

У меня проблема с моим приложением .NET, и оно может быть воспроизведено только иногда и только на месте клиента, что крайне затрудняет ее решение. В приложении используется форма аутентификации. Существует страница входа, на которую перенаправляется каждый анонимный пользователь. После того, как пользователь вводит имя пользователя и пароль, он перенаправляет на DefaultURL или какую-то предопределенную страницу. Проблема в том, что иногда, когда пользователь вводит правильное имя пользователя и пароль, он не входит в систему, а просто обновляет страницу входа без каких-либо сообщений об ошибках. После нескольких попыток ввода имени пользователя и пароля пользователь может войти в систему.

См. Мою страницу входа Submit_Click код ниже:

    Dim userName As String = tbUsername.Text
    Dim password As String = tbPassword.Text
    Dim returnUrl As String = Request("returnUrl")

    If IsValidated() Then
        FormsAuth.SignIn(userName, False)

        If password = WebConfigurationManager.AppSettings("PasswordDefault") Then
            FlashMessage.ErrorMessage("You have default password """ & password & """. Please change it")
            Response.Redirect("~/ChangePassword.aspx")
        End If
        If Not String.IsNullOrEmpty(returnUrl) Then
            Response.Redirect(returnUrl)
        Else
            If Roles.IsUserInRole(userName, Constants.SOME_ROLE) Then
                Response.Redirect("~/Forms/SomePage.aspx")
            Else
                Response.Redirect("~/Default.aspx")
            End If
        End If
    Else

    End If

UPDATE:
Я проверил Windows Event Viewer, и он имеет следующие события:

Тип события: информация
Источник события: ASP.NET 2.0.50727.0
Категория события: веб-событие
Код события: 1315
Дата: 29.09.2010
Время: 11:55:56
Пользователь: N / A
Компьютер: TWDWEB1
Описание:
Код события: 4006
Сообщение о событии: не удалось подтвердить учетные данные участника.
Время события: 29.04.2010 11:55:56
Время события (UTC): 29.04.2010 15:55:56
Код события: 9e5aea5a6d6b4f7a96fc38a334d181dd
Последовательность событий: 26
Событие наступления: 4
Код детали события: 0

Информация о приложении:
Область применения: / LM / W3SVC / 1 / Root / DataManipulationsService-1-129170192766483624
Уровень доверия: Полный
Виртуальный путь к приложению: / DataManipulationsService
Путь к приложению: F: \ Development \ DataManipulationsService \
Название машины: TWDWEB1

Информация о процессе:
Идентификатор процесса: 7948
Имя процесса: w3wp.exe
Имя учетной записи: NT AUTHORITY \ NETWORK SERVICE

Запрос информации:
URL запроса:
Путь запроса:
Адрес хоста пользователя:
Пользователь:
Аутентифицировано: False
Тип аутентификации:
Имя учетной записи потока: NT AUTHORITY \ NETWORK SERVICE

Имя для аутентификации: xxxxxx

Пользовательские детали события:

Для получения дополнительной информации см. Центр справки и поддержки по http://go.microsoft.com/fwlink/events.asp.

Ответы [ 2 ]

0 голосов
/ 20 марта 2011

Добавьте блок try / catch вокруг вызова signin ().Если этот вызов не выполняется из-за неправильной конфигурации системы вашего клиента, вы можете сообщить об ошибке пользователю или журналу.Возможно, код выполняет какие-либо обработки исключений, которые могут скрывать ошибку?

0 голосов
/ 20 марта 2011

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

Не зная ответа на этот вопрос, первое, что я хотел бы предложить, это то, что если вы работаете с веб-фермой, вам нужно убедиться, что элемент machineKey в файле web.config установлен и идентичен на каждом из серверов в веб-ферме.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...