Я использую веб-сайт на IIS6 / Server 2003, который использует встроенную проверку подлинности Windows в локальной интрасети.Я могу просматривать сайт, но периодически получаю ошибки «Object null» при вызове следующего кода C #, который вызывается при каждом запросе:
....
GetUserIdFromPrincipal(User)
....
public static string GetUserIdFromPrincipal(IPrincipal principal) {
return principal.Identity is WindowsIdentity ? (principal.Identity as WindowsIdentity).User.Value : principal.Identity.Name;
}
Таким образом, поскольку ошибка явно прерывистая, Windows Auth работает на некоторыхуровень, но после перемещения по сайту в течение нескольких кликов я получаю нулевую ссылку-ссылку, означающую, что IPrincipal равен нулю (я думал, что это никогда не должно быть нулевым в ASP.NET).
Ошибка происходит только на недавно созданной виртуальной машине.Код хорошо работает на других машинах и, конечно, при локальной разработке.
Запрашивает ли IIS сведения об аутентификации Windows для каждого запроса?Что может вызвать такую неустойчивую проблему?Любая помощь или предложения будут высоко оценены.