У меня довольно сложное веб-приложение, которое было построено (подрядчиком) для использования интегрированной проверки подлинности. В рамках процесса аутентификации, GetNetworkID()
используется функция, которая выглядит следующим образом:Устранение неполадок при проверке подлинности ASP.NET
private string GetNetworkID()
{
return HttpContext.Current.User.Identity.Name.Split(new char[] { '\\' })[1];
}
Когда я бегу это на моем окне развития, значение HttpContext.Current.User.Identity.Name
является MyNetwork \\ myUserID, так что приведенные выше возвращается Funciton мой идентификатор пользователя, как и предполагалось, и процесс authenticaiton работают очень хорошо.
Но когда я запускаю это на моем веб-сервере, я получаю Индекс находился вне границ массива ошибки брошенной оператора возврата в функции GetNetworkID()
.
Я немного потерял информацию о том, как устранить эту проблему и как выяснить, является ли это проблемой конфигурации IIS (мой веб-сервер - это ядро Windows Server 2008 с IIS 7) или что-то еще.
Если я жестко запрограммировал свой идентификатор пользователя как возвращаемое значение для функции GetNetworkID()
, он работает на веб-сервере, но у меня нет отличных идей о том, как отлаживать веб-сервер, чтобы определить, что такое HttpContext.Current.User.Identity.Name
возвращаемое значение вызывает ошибку индекса массива.
Любые предложения?
Это то, что вы можете отлаживать или войти на вашей машине Если,.? Например, HttpContex t.Current.User.Identity.Name - это нечто неожиданное, например ASPNET, то это может быть проблема конфигурации IIS на вашем поле. –
Спасибо, Дэвид - как я уже сказал, он работает на моей машине (и я использую VS & Cassini, поэтому у меня нет никакой конфигурации IIS). Разумеется, у меня IIS на сервере, но у него самые общие настройки из коробки, и мои попытки настроить аутентификацию с этой целью были безуспешными. – theog
Редактировать: Я должен упомянуть, что я пробовал метод Response.Write для устранения неполадок несколькими способами. Это немного запутанно, потому что в коде аутентификации задействован ряд других шагов, но похоже, что вместо моего идентификатора пользователя он возвращает мое имя («Joe Blow»). Итак, да, может, я просто ответил на свой вопрос там ... Позвольте мне немного поработать над этим. – theog