У меня довольно сложное веб-приложение, созданное (подрядчиком) для использования встроенной аутентификации. В процессе аутентификации используется функция GetNetworkID()
, которая выглядит следующим образом:
private string GetNetworkID()
{
return HttpContext.Current.User.Identity.Name.Split(new char[] { '\\' })[1];
}
Когда я запускаю это на своем блоке разработки, значение HttpContext.Current.User.Identity.Name
myNetwork \\ myUserID , поэтому вышеупомянутая функция возвращает мой идентификатор пользователя, как и предполагалось, и процесс аутентификации работает просто отлично.
Но когда я запускаю это на своем веб-сервере, я получаю Индекс находится за пределами массива Ошибка, выдаваемая оператором return в функции GetNetworkID()
.
Я немного растерялся из-за того, как решить эту проблему и выяснить, является ли это проблемой конфигурации IIS (мой веб-сервер - это Windows Server 2008, работающая под управлением IIS 7) или что-то еще.
Если я жестко закодировал свой идентификатор пользователя в качестве возвращаемого значения для функции GetNetworkID()
, он работает на веб-сервере, но у меня нет особых идей о том, как отлаживать на веб-сервере, чтобы определить, что HttpContext.Current.User.Identity.Name
Возвращаемое значение вызывает ошибку индекса массива.
Есть предложения?