Отображаемое имя выдает ошибку при публикации на сервере IIS
https://www.codeproject.com/Tips/458039/Application-Login-through-Active-Directory-LDAP
Я попробовал решение по ссылке выше, используя метод проверки, и изменил его, чтобы вернуть только displayname, который вставлен ниже. Он работает локально, но после публикации на сервере IIS выдает ошибку -
"Невозможно привести объект типа System.Каталог.Бухгалтерия.GroupPrincipal to type 'System.Каталог.Бухгалтерия.Метод userprincipal"
Я попытался добавить свои учетные данные домена в функцию олицетворения аутентификации в IIS, но тогда она дает доступ только мне, то же самое, если добавить другого пользователя, она даст доступ только к ним.
NB: веб-сайт должен получить текущее имя пользователя для входа и отображения из windows, а также получить их данные из базы данных. Также пытался включить проверку подлинности windows, но все равно выдает ошибку cast object.
Что я уже пробовал:
публичная статическая строка fnValidateUser()
{
строковое имя пользователя = "";
строку "фамилия" = "";
пробовать
{
LdapConnection lcon = новый LdapConnection
(новый LdapDirectoryIdentifier((string)null, false, false));
NetworkCredential nc = новый NetworkCredential(Environment.имя пользователя,
Окружающая среда.UserDomainName);
Класса Windowsidentity CurrentIdentity = Windowsidentity Могут.GetCurrent();
Метод userprincipal метод userprincipal = метод userprincipal.Тока;
имя пользователя = метод userprincipal.Отображаемое имя;
Фамилия = userPrincipal.фамилия;
// lcon.Учетные данные = nc;
// lcon.Тип = Тип.Переговоры;
// // пользователь прошел аутентификацию на данный момент,
// // поскольку учетные данные были использованы для входа в dc.
// lcon.Персонализация(Северная Каролина);
// проверка = истина;
}
поймать (LdapException)
{
}
вернуть имя пользователя;
}
Member 10271543
Он работает локально, но не после публикации в IIS