Проблема аутентификации ASP.NET IIS для некоторых пользователей - PullRequest
3 голосов
/ 15 октября 2010

У меня есть сайт репозитория ASP.NET, работающий на IIS6.0, и у меня есть проблема, которую я не могу воспроизвести, но у трех пользователей эта проблема каждый раз (~ 20 других пользователей работают нормально).Я почти уверен, что это как-то связано с настройкой IIS Authentication, но я, конечно, не исключаю ошибки кодирования.

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

При попытке перейти на страницу ViewPage.aspx (но не на любую другую страницу на сайте).) их запрашивают учетные данные пользователя.Когда они пытаются войти в систему, они снова получают приглашение для входа.После трех попыток входа в систему появляется следующее сообщение об ошибке:

Ошибка HTTP 401.1 - неавторизовано: доступ запрещен из-за неверных учетных данных.

СистемаПросмотр событий имеет следующие предупреждения (более 10 из них):

EventID: 1011
Источник: W3SVC
Описание:
Пул приложения, обслуживающего процесс, 'SDAAppPool'произошла фатальная ошибка связи со службой издательства World Wide Web.Идентификатор процесса был «3264».Поле данных содержит номер ошибки.

и

EventID: 1009
Источник: W3SVC
Описание:
Пул приложения, обслуживающего процесс, 'SDAAppPool' неожиданно завершил работу.Идентификатор процесса был «2088».Код завершения процесса: «0x800703e9».

Средство просмотра событий безопасности имеет несколько следующих аудита отказов:

Идентификатор события: 560
Источник: Безопасность
Категория: Доступ к объекту
Описание:
Открытие объекта:
Сервер объектов: Диспетчер SC
Тип объекта: ОБСЛУЖИВАНИЕ ОБЪЕКТА
Имя объекта: WinHttpAutoProxySvc
Идентификатор дескриптора: -
ОперацияID: {0,557880730}
ИД процесса: 444
Имя файла изображения: C: \ WINDOWS \ system32 \ services.exe
Основное имя пользователя: EBTOPVNET01 $
Основной домен: EBSS
Основной идентификатор входа в систему: (0x0,0x3E7)
Имя пользователя клиента: СЕТЬ СЕТИ
Домен клиента: NT AUTHORITY
Идентификатор входа клиента: (0x0,0x3E4)
Доступ: статус запроса службы
Запустите службу
Запросите информацию из службы
Привилегии: -
Количество ограниченных Sid: 0
Маска доступа: 0x94

Средство просмотра событий приложения имеет следующие ошибки:

EventID: 5000
Источник: .NETОшибка времени выполнения 2.0
Пользователь: н / д
Описание:
EventType clr20r3, P1 w3wp.exe, P2 6.0.3790.3959, P3 45d691cc, P4 system.data, P5 2.0.0.0, P6 4889ece0, P7 1849, P8 0, P9 system.stackoverflowexception, P10 NIL.

Мой web.config имеет следующий код аутентификации / авторизации:

<authentication mode="Windows"/>
<authorization>
    <deny users="?"/>
</authorization>

, и я использую следующую проверку пользователя настраница ViewPage.aspx:

UsersService us = new UsersService();
TList<Users> currUser = us.Find("Ntid = '" + User.Identity.Name + "'");
int userID = 0;
if (currUser.Count != 0 )
{
    userID = currUser[0];
}

и используйте этот идентификатор пользователя для проверки доступа и тому подобное.Если userID == 0, они получают доступ только на чтение (что, я думаю, даст пользователям доступ на чтение вместо 401 ошибок, если User.Identity.Name вернул пустое значение).Я делаю ту же самую проверку пользователей на другой странице, и у пользователей нет проблем с доступом к ней.

На основании моих нескольких дней поиска различных подзадач, я не уверен, что все эти факты актуальны, но явключил все, что я мог придумать.Если есть что-то важное, что я пропустил, дайте мне знать.Будем весьма благодарны за любые идеи о том, с чего начать расследование или о способе воспроизвести это на моем локальном хосте, чтобы я мог отлаживать.Спасибо.

1 Ответ

1 голос
/ 15 октября 2010

Из кода завершения процесса кажется, что какая-то рекурсия происходит и никогда не раскручивается. Есть замечательная статья удивительной Тесс Феррандез , которая объясняет, как отладить такую ​​проблему:

Сбой .NET: Как не написать глобальный обработчик исключений

...