С Новым годом! Форум программистов, компьютерный форум, киберфорум
C#: Web, ASP.NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.79/75: Рейтинг темы: голосов - 75, средняя оценка - 4.79
0 / 0 / 0
Регистрация: 18.12.2006
Сообщений: 7

Active Directory и ASP.NET (C#)

18.12.2006, 16:57. Показов 14245. Ответов 24
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
ДАНО:
1.Win2003 Server с установленным на нём Active Directory
2.WinXP sp2 + IIS + Asp.net
в настройках web.config <authentication mode="Windows"/> <identity impersonate="true" />
в настройках IIS стоит "встроенная проверка Windows" анонимный доступ отключён.

Задача:
Используя ASP.NET получить доступ в Active Directory испольуя контектс залогининного доменнго пользователя т.е. пользователя должен ввести пароль только когда заходит в Windows и всё дальше приложение ASP.NET должно его распозновать по SSO

ВОПРОС :
Если запустить IE и обратиться к IIS с той же машина на которой стоит IIS (winXP)то всё работате отлично как надо.
НО если запустить IE с другой машины домена (ну стогоже контролера домена) то при обращении к IIS запрашивается ввод логинпароль. И по SSO получить доступ к AD не получается.
Как сделать так чтобы при обращении к IIS использовалась учетная запись залогининного пользователя домена? И почему если пользователь на удалённой машине по отношению к IIS нет доступа к AD через SSO ???
пробывал ставить <identity impersonate="false" /> и делать имперсонализацию руками.
WindowsImpersonationContext impersonatedUser = WindowsIdentity.Impersonate(((WindowsIde ntity)User.Identity).Token);

Но результат одинаков. Имперсонализацию проходит успешно но в AD стучусь как анонимный пользователь и соответсвенно доступа к AD не получаю. Хотя на локальной машине всё работает.


0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
18.12.2006, 16:57
Ответы с готовыми решениями:

работа с Active Directory из ASP или ASP.NET
надо для себя, как администратора, сделать страничку, которая позволяла бы считывать состав группы пользователей из AD и добавлять/удалять...

Создание юзерей в Active Directory посредством ASP скрипта
Помогите осуществить сабж. Очень надо...

Как правильно настроить Virtual Directory в IIS для ASP.NET 2.0?
Помогите пожалуйста. Разбираюсь з WEb-сайтом сделанным в ASP.NET 2.0. Код понял, но сайт запустить не могу - выдает ошибку: ...

24
86 / 62 / 69
Регистрация: 15.03.2007
Сообщений: 6,903
18.12.2006, 17:44
Internet Explorer автоматически использует NTML аутентификацию только для сайтов из зон Trusted Sites и Local Intranet. Скорее всего компьютер на котором запущеен IIS не воспринимается как входящий в одну из этих зон (посмотри что пишется справа в строке статуса). Тебе должно помочь ручное добавление сайта в Local Intranet.
Что касается доступа к AD, то у тебя все настройки уже правильно сделаны. И разумеется комп с IIS должен быть членом домена. По моему больше ничего не нужно.
0
0 / 0 / 0
Регистрация: 18.12.2006
Сообщений: 7
18.12.2006, 18:30  [ТС]
Спасибо. Добавление сайта в Local Intranet помогло избавиться от запроса логинпароль.
Но вот доступ в Active Directory без ввода пароля c использованием SSO по прежнему не работает.
0
86 / 62 / 69
Регистрация: 15.03.2007
Сообщений: 6,903
18.12.2006, 19:43
Можешь показать код обращения к AD?
0
0 / 0 / 0
Регистрация: 18.12.2006
Сообщений: 7
18.12.2006, 19:58  [ТС]
DirectoryEntry entry = new DirectoryEntry(LDAP://NameDC/CN=Users,DC=DOMAINNAME,DC=TEST);
На локальной машине доступ получаю, на удалённой - нет. Если в конструтор добавить логинпароль то на удалённой машине доступ получаю, но надо то без ввода логина и пароля.
0
86 / 62 / 69
Регистрация: 15.03.2007
Сообщений: 6,903
18.12.2006, 20:25
А если попробовать использовать перегруженный метод который, принимает в качестве последнего аргумента тип аутентификации? Попробуй ему передать <SPAN class=identifier>AuthenticationTypes.Sec ure.</SPAN>
<SPAN class=identifier>И еще вопрос: какая у тебя версия .NET?</SPAN>
0
0 / 0 / 0
Регистрация: 18.12.2006
Сообщений: 7
18.12.2006, 21:29  [ТС]
пробывал так
DirectoryEntry entry = new DirectoryEntry(LDAP://NameDC/CN=Users,DC=DOMAIN,DC=TEST, null, null, AuthenticationTypes.Secure);
и так
DirectoryEntry entry = new DirectoryEntry(LDAP://NameDC/CN=Users,DC=DOMAIN,DC=TEST);
entry.AuthenticationType = AuthenticationTypes.Secure;
Результат одинаков доступа на удалённой машине нет
WindowsIdentity.GetCurrent().Authenticat ionType == Kerberos
ASP.NET ver:2.0.50727
IIS ver:5.1
0
86 / 62 / 69
Регистрация: 15.03.2007
Сообщений: 6,903
18.12.2006, 22:22
Раз .NET 2.0, то аргумент AuthenticationTypes.Secure должен использоваться по умолчанию. Так написано в MSDN во всяком случае.
Возможно проблема кроется в Kerberos аутентификации. У меня на машине WindowsIdentity.GetCurrent().Authenticat ionType == Negotiate. Но я не уверен, просто попытка попасть пальцем в небо.
0
0 / 0 / 0
Регистрация: 18.12.2006
Сообщений: 7
18.12.2006, 22:46  [ТС]
У меня Negotiate == HttpContext.Current.User.Identity.Authen ticationType
WindowsIdentity.GetCurrent().Authenticat ionType
До имперсонализации равно
NTLM
После имперсонализации равно
Kerberos
По идее это правильно т.к. Kerberos как раз делает возможным обращение к серверу без посылки логинапароля. И на сколько я понял из MSDN “Negotiate” как раз и говорит о том что используется или Kerberos или NTLM
0
86 / 62 / 69
Регистрация: 15.03.2007
Сообщений: 6,903
19.12.2006, 12:39
Тогда я пас. Не знаю в чем тут дело может быть.
0
0 / 0 / 0
Регистрация: 18.12.2006
Сообщений: 7
19.12.2006, 21:05  [ТС]
Что любоытно - когда запускаешь IE с компа DC - заработало... правда не понятно почему и как то странно... То работает то не работет, сразу после перезагрузки компа где стоит IIS работает, потом после какогото времени не работат... ромашка какаято....
Пршёл дальше решил дастучаться к IIS с третьего компа(IIS на одном, AD на другом, а IE на третьем), которой является членом домена и пользователь залогинен как член домена. Доступа нет. Почему нет доступа понятно там вместо kerberos используется NTLM а вот почему??? это вопрос....
0
0 / 0 / 0
Регистрация: 01.08.2010
Сообщений: 5
01.08.2010, 20:00
Вопрос такой. Попытался залезть в Активную директорию домен контроллера (данные по юзерам вытащить), Получилось. Консольная аппликация работает нормально (запускаю со своего компутера, под своим логином без прав администратора) а вот абсолютная копия, но в виде веб аппликации не возвращает никаких данных, хотя и ошибки не дает, хотя разница только в том, что поменял Console.Write на Response.Write. В чем может быть проблем?
0
0 / 0 / 2
Регистрация: 14.07.2010
Сообщений: 247
02.08.2010, 10:07
v IIS ustanavi windows auth.
0
0 / 0 / 0
Регистрация: 01.08.2010
Сообщений: 5
02.08.2010, 14:29
Пробовал :-((
0
0 / 0 / 2
Регистрация: 14.07.2010
Сообщений: 247
02.08.2010, 14:55
otashli isxodniki mne please
0
0 / 1 / 3
Регистрация: 27.03.2012
02.08.2010, 15:45
все просто - когда ты запускаешь windows-приложение, оно запускается под твоей учетной записью и имеет права на доступ к active directory, а когда ты запускаешь веб-приложение, оно запускается по-умолчанию под локальной учетной записью, которая не имеет прав на доступ к active directory
0
0 / 1 / 3
Регистрация: 27.03.2012
02.08.2010, 15:49
'windows auth' там не поможет - выход такой

1. либо установить в web.config impersonation=true (зависит от назначения приложения, вообще, в общем случане не лучший способ)

2. написать COM+ модуль и зарегистрировать его с правами на запуск например под твоим юзером и вызывать этот модуль из ASP.NET
0
0 / 0 / 0
Регистрация: 01.08.2010
Сообщений: 5
02.08.2010, 15:55
Отослал на мейл.
0
0 / 0 / 0
Регистрация: 01.08.2010
Сообщений: 5
02.08.2010, 16:06
smaliq, а в какой раздел вебконфига, в какое место вписывать?
0
0 / 0 / 2
Регистрация: 14.07.2010
Сообщений: 247
02.08.2010, 16:12
da , on prav
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
02.08.2010, 16:12
Помогаю со студенческими работами здесь

Запись в Active Directory
DirectoryServices.AccountManagement создаю нового пользователя в AD,а как прописать ему company, department, title (организация,...

При создании проекта ASP.NET Aplicetion выскакивает сообщение Web server is not running ASP/NET version 1.1
При создании проекта ASP.NET Aplicetion выскакивает сообщение Web server is not running ASP/NET version 1.1 хотя все запущено,...

Client ASP.NET MVC + Angular и Server side ASP.NET WEB.API
Доброго времени суток! Не первый день бьюсь над задачей, не могу понять в чем причина. Хочу создать почти HelloWorld решение, для...

При попытке открыть *.asp выдает ошибку Active Server Pages error 'ASP 0201'
Может кто подскажет: проблема с ASP скриптами на WinXP. При попытке открыть *.asp выдает ошибку Opera Active Server Pages...

Стоит ли учить asp.net, если скоро станет asp.net core?
Всем привет Если я правильно понимаю, лучше учить Core ?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её. Последовательность действий:. . .
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru