Неверная аутентификация после изменения имени входа пользователя

17

У нас есть пользователь, который недавно изменил имя.

Предположим, что прежнее имя пользователя было old.name, а новое имя пользователя - new.name.

После редактирования сведений в AD и выхода / входа с новым именем пользователя наше приложение ASP.NET показывает старое имя.

Обычный ASP.NET, без MVC, с использованием проверки подлинности Windows.

Код для получения имени пользователя:

WindowsPrincipal wp = (WindowsPrincipal)HttpContext.Current.User;
String userName = wp.Identity.Name.Substring(wp.Identity.Name.IndexOf("\") + 1);

Это возвращает old.name, а не new.name.

Я проверил файлы журнала IIS, они показывают новое имя:

2011-04-05 11:41:44 W3SVC1 MARS 10.57.1.64 GET /eft/Default.aspx - 80 - 10.57.0.161 Mozilla/4.0+(compatible;+MSIE+7.0;+Windows+NT+5.2;+Trident/4.0;+.NET+CLR+1.1.4322;+.NET+CLR+2.0.50727;+.NET+CLR+3.0.4506.2152;+.NET+CLR+3.5.30729;+.NET4.0C;+.NET4.0E) 401 2 2148074254

2011-04-05 11:41:44 W3SVC1 MARS 10.57.1.64 GET /eft/Default.aspx - 80 SANOMABP\new.name 10.57.0.161 Mozilla/4.0+(compatible;+MSIE+7.0;+Windows+NT+5.2;+Trident/4.0;+.NET+CLR+1.1.4322;+.NET+CLR+2.0.50727;+.NET+CLR+3.0.4506.2152;+.NET+CLR+3.5.30729;+.NET4.0C;+.NET4.0E) 200 0 0

Мы перезапустили пул приложений, мы проверили данные AD, и у нас больше нет идей, что может быть неправильным.

    
задан Biri 05.04.2011 в 14:04
источник
  • Журналы IIS показывают 401 (неавторизованный), который предположительно заставляет браузер повторно выдавать запрос с соответствующими учетными данными AD (в результате получается 200 в следующей строке). Это говорит о том, что правильное имя пользователя в журналах IIS поступает с клиентского ПК и не обязательно на том же компьютере, на котором выполняется ваш код сервера. Можете ли вы подтвердить, являются ли они одной машиной или двумя разными машинами? –  KP Taylor 05.04.2011 в 14:12
  • вы можете попробовать посмотреть на support.microsoft.com/kb/946358 –  Paolo Falabella 05.04.2011 в 14:20
  • Они, конечно, две разные машины. Клиент использует свою машину с IE, а IIS - на другой машине. Я проверю предложенную вами страницу. –  Biri 05.04.2011 в 14:23
  • В этом была проблема! Спасибо, эта статья помогла. –  Biri 05.04.2011 в 14:25
  • это ответ, который мне был нужен в начале этого дня. благодаря! –  jao 26.05.2011 в 16:38

1 ответ

14

ДВИЖЕНИЕ ПРАВИЛЬНОГО ОТВЕТА ОТ КОММЕНТАРИЙ ДЛЯ ЯРКОСТИ:

  

@paolo: вы можете попробовать support.microsoft.com/kb/946358

    
ответ дан roman m 03.08.2011 в 08:47
  • И для ясности - вы должны использовать это обходное решение на своей машине IIS Server для правильной работы, а не на клиентских машинах (с учетом проблем ASP.NET WinAuth). –  Jarzyn 06.10.2014 в 01:00