В настоящее время я устраняю неполадки в приложении Интранет, размещенном в нашей компании.В этом приложении проверка подлинности Windows (интегрированный режим) используется для получения объекта IPrincipal для текущего пользователя и имени текущего пользователя (то есть «DOMAIN \ Joe123»).Наш домен имеет длину 4 символа, поэтому тот, кто собрал этот код, получает только подстроку, содержащую имя пользователя текущего пользователя, следующим образом:
private string GetUserID()
{
string userId = "";
if (User.Identity.Name.ToString().Length > 5)
{
userId = User.Identity.Name;
userId = userId.Substring(5);
}
return userId;
}
Проблема, с которой мы сталкиваемся, заключается в том, что у нас есть пользовательчье имя пользователя было недавно изменено.У нас есть два контроллера домена под управлением Windows Server 2003 R2, с которых мы можем управлять учетными данными Active Directory.Этот пользователь был изменен в Active Directory и теперь имеет новое имя для входа, новый адрес электронной почты, новое местоположение профиля (используются перемещаемые профили) и новый почтовый ящик / псевдоним Exchange (работает под управлением Exchange 2007).Это было сделано после того, как данная женщина вышла замуж и сменила фамилию.Я не могу найти ни одного места в Active Directory или Exchange Management, где новое имя входа не отображается.
Этот пользователь может войти в наш домен, используя свое новое имя входа.Однако объект IPrincipal, доступ к которому осуществляется с помощью приведенного выше кода, по-прежнему сообщает предыдущее имя пользователя.
На сегодняшний день ее компьютер был перезагружен, все файлы cookie очищены, а пул приложений для нашего приложения интрасетипереработаны.Мне интересно, какие еще шаги могут потребоваться для обновления значения имени, возвращаемого в объекте IPrincipal.