Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / asp.net аутентификация ActiveDirectory / 16 сообщений из 16, страница 1 из 1
06.11.2011, 16:48
    #37513414
Boneshock
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
asp.net аутентификация ActiveDirectory
Добрый вечер.
Подскажите правильный способ, чтобы залогинить юзера с помощью ActiveDirectory. Что делать если мне нужно предоставить доступ пользователям, которых нет в AD, использовать аутентификацию forms? Есть какие-нибудь примеры?
...
Рейтинг: 0 / 0
06.11.2011, 19:53
    #37513566
МСУ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
asp.net аутентификация ActiveDirectory
На выбор:
1. Windows Authentication + SqlRoleProvider
2. ActiveDirectoryMembershipProvider
...
Рейтинг: 0 / 0
07.11.2011, 11:13
    #37514008
МСУ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
asp.net аутентификация ActiveDirectory
...
Рейтинг: 0 / 0
07.11.2011, 14:27
    #37514436
Boneshock
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
asp.net аутентификация ActiveDirectory
Спасибо. Вроде все просто, но работать нифига не хочет...
Использую ActiveDirectoryMembershipProvider. Подозреваю что ошибка в строке подключения. Допустим если у меня домен domain.ru и два domain controllers (dc1.domain.ru и dc2.domain.ru) как должна выглядеть строка подключения?
Вот так неправильно?
Код: plaintext
<add name="ADConnectionString" connectionString="LDAP://CN=Users,DC=domain,DC=ru" />
МСУ , подскажи, пожалуйста.
...
Рейтинг: 0 / 0
07.11.2011, 15:19
    #37514546
МСУ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
asp.net аутентификация ActiveDirectory
Код: plaintext
<add name="ADConnectionString" connectionString="LDAP://domain"/>

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
<membership defaultProvider="MembershipADProvider">
  <providers>
    <add name="MembershipADProvider" 
         type="System.Web.Security.ActiveDirectoryMembershipProvider,System.Web,Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
         enableSearchMethods="true"
         connectionProtection="None"
         attributeMapUsername="sAMAccountName"
         connectionStringName="ADConnectionString"
         connectionUsername="domain\admin" 
         connectionPassword="pass" />
  </providers>
</membership>

P.S. Посмотрите-таки Mixing Forms and Windows Security, я в первом посте не правильно вопрос понял :)
...
Рейтинг: 0 / 0
07.11.2011, 18:41
    #37514919
Boneshock
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
asp.net аутентификация ActiveDirectory
МСУ , спасибо!
Теперь работает, ошибка видимо была в строке подключения. Я делал вот по этим примерам http://msdn.microsoft.com/en-us/library/ms998360.aspx и http://msdn.microsoft.com/en-us/library/ms180890(v=vs.80).aspx. Оба способа работают. Надо подумать какой выбрать и как подключить SSL.
>Посмотрите-таки Mixing Forms and Windows Security
посмотрел, но думаю мне хватит первых двух.
Только вот такой вопрос. Пользователи интранета у которых есть AD-данные будут заходить на сайт с помощью них; внешним пользователям нужно тоже дать доступ к сайту. Можно подключить стандартный SqlMembershipProvider, но как совместить(если испльзовать ActiveDirectoryMembershipProvider)?
...
Рейтинг: 0 / 0
07.11.2011, 19:31
    #37515010
Boneshock
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
asp.net аутентификация ActiveDirectory
Единственное - второй метод с созданием класса LdapAuthentication работает только из под студии, т.е. при открытии сайта в браузере выдает ошибку 500. Ну это видимо надо iis настроить.
...
Рейтинг: 0 / 0
08.12.2011, 10:50
    #37564570
Boneshock
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
asp.net аутентификация ActiveDirectory
В продолжении темы.
Авторизация работает и в интранет и в интернет сети, все o'k. Но что если пользователь открывает сайт внутри локальной сети, он уже залогинен на своем компьютере по AD-учетке, можно ли как то узнать его имя? Т.е. без ввода имени и пароля в формочке, узнать учетную запись пользователя, который зашел внутри сети на сайт?

Кстати, МСУ, кажется в этой теме вы спрашивали про что-то похожее, нет? Получилось сделать?
...
Рейтинг: 0 / 0
08.12.2011, 11:10
    #37564619
МСУ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
asp.net аутентификация ActiveDirectory
BoneshockПолучилось сделать?
К сожалению нет, сам очень хотел такую штуку... Это возможно только в Windows-аутентификации (не всеми браузерами поддерживается).

Код: c#
1.
2.
<anonymousIdentification enabled="false"/>
<authentication mode="Windows">



В итоге остановился именно на этом варианте. Пользователи - виндовые, а роли / профили / ... стандартные сиквельные (которые идут в поставке aspnetdb).
Самое главное, юзерам не надо вводить пароли. Из инета тоже будет работать, но только для юзера AD. Меня это устраивает.
Разумеется, пришлось написать свою админку для добавления / удаления пользователей / ролей. Юзается только таблица aspnet_Users. aspnet_Membership пустая.
...
Рейтинг: 0 / 0
08.12.2011, 13:14
    #37565047
Boneshock
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
asp.net аутентификация ActiveDirectory
МСУ,
Т.е. в вашем случае, если юзер на компе зашел под ad-учеткой, при открытии веб-приложения, приложение определяло его логин и аутентифицировало автоматически без формы ввода логина/пароля?
Ну а что, тоже вариант. Для этого нужно просто указать тип аутентификации? И где отследить(в каком событии?) что пользователь не из AD?(нужны специфичные действия в этом случае)
...
Рейтинг: 0 / 0
08.12.2011, 14:29
    #37565264
МСУ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
asp.net аутентификация ActiveDirectory
BoneshockМСУ, Т.е. в вашем случае, если юзер на компе зашел под ad-учеткой, при открытии веб-приложения, приложение определяло его логин и аутентифицировало автоматически без формы ввода логина/пароля?
Конечно. И в этом весь цимус. И безопасно и удобно. Но ограничение - только для пользователей AD. В основном для интранет решений этого с головой.
BoneshockНу а что, тоже вариант. Для этого нужно просто указать тип аутентификации? И где отследить(в каком событии?) что пользователь не из AD?(нужны специфичные действия в этом случае)
Ничего не нужно отслеживать, не нужно писать ни строчки кода в провайдере. Нужно просто указать виндовую аутентификацию.

Веб-конфиг:

Код: c#
1.
<authentication mode="Windows" />



Код:

Код: c#
1.
2.
3.
4.
5.
<body>
    <form id="form1" runat="server">
        Текущий пользователь <%= User.Identity.Name %>
    </form>
</body>
...
Рейтинг: 0 / 0
26.01.2012, 12:46
    #37632590
saszay
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
asp.net аутентификация ActiveDirectory
Может это поможет:
http://support.microsoft.com/kb/306158/ru/
...
Рейтинг: 0 / 0
26.01.2012, 14:08
    #37632860
МСУ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
asp.net аутентификация ActiveDirectory
saszayМожет это поможет:
http://support.microsoft.com/kb/306158/ru/

http://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=911648&msg=11950683 • По возможности избегайте применения олицетворения и делегирования, потому что это может существенно повлиять на производительность и возможности масштабирования. Как правило, олицетворение клиента при вызове требует больших ресурсов, чем вызов напрямую.
...
Рейтинг: 0 / 0
22.03.2012, 16:05
    #37718176
ReyDoc81
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
asp.net аутентификация ActiveDirectory
Boneshock Я делал вот по этим примерам http://msdn.microsoft.com/en-us/library/ms998360.aspx и
Делал по этому примеру в Silverlight BA, все отлично работает.... но только в студии.
После публикации в IIS 7 вылетает с ошибкой: Load operation failed for query 'Login'....

Что я не так делаю?
...
Рейтинг: 0 / 0
22.03.2012, 16:14
    #37718195
ReyDoc81
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
asp.net аутентификация ActiveDirectory
ASP.NET версия тоже вылетает с ошибкой:

Description: The application attempted to perform an operation not allowed by the security policy. To grant this application the required permission please contact your system administrator or change the application's trust level in the configuration file.

Exception Details: System.Security.SecurityException: Request for the permission of type 'System.DirectoryServices.DirectoryServicesPermission, System.DirectoryServices, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' failed.


Если не хватает доверия то как его изменить??
...
Рейтинг: 0 / 0
22.03.2012, 16:32
    #37718242
ReyDoc81
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
asp.net аутентификация ActiveDirectory
<system.web>
<trust level="Full"/> - это решило проблему, но не знаю правильно ли это.
...
Рейтинг: 0 / 0
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / asp.net аутентификация ActiveDirectory / 16 сообщений из 16, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]