2010-04-09 26 views
10

Czy można używać tego dostawcy roli AspNetWindowsTokenRoleProvider z uwierzytelnianiem formularzy ASP.NET FORMS (za pośrednictwem tego narzędzia MemberhipProvider System.Web.Security.ActiveDirectoryMembershipProvider)?Jak mogę udostępnić UX uwierzytelniania formularzy ASP.NET podczas korzystania z dostawców Role i uwierzytelniania Active Directory?

Wygląda na to, że działa tylko z <authentication mode="Windows">, czy można go używać z FORMULARZAMI?

Tło - Celem jest zapewnienie ASP.NET Forms UX podczas korzystania z Active Directory jako systemu uwierzytelniania zaplecza. Jeśli jest inny, łatwy sposób, aby to zrobić za pomocą wbudowanych technologii, to jest świetne i chciałbym o tym również usłyszeć.

aktualizacja

powinienem powiedzieć, że mam pracę uwierzytelniania, co mi z trudem jest dodanie poziom szczegółowej kontroli (takich jak role).

Obecnie muszę skonfigurować połączenie usługi Active Directory tak, aby wskazywało na określoną jednostkę organizacyjną w mojej domenie, która ogranicza fizycznie dostęp tylko do użytkowników w tej jednostce organizacyjnej - chcę wskazać połączenie z Active Directory do mojego cała domena i ograniczenie dostępu w oparciu o członkostwo w grupie (alias Role) działa to, jeśli używam uwierzytelniania systemu Windows - ale chciałbym mieć to, co najlepsze z obu światów, czy jest to możliwe bez pisania własnego RoleProvider?

+0

Na podstawie twojego akapitu "w tle" wygląda na to, że ten samouczek jest tym, czego potrzebujesz: - http://msdn.microsoft.com/en-us/library/ms998360.aspx Nazywa się "How To: Use Authentication Forms with Active Directory w ASP.NET 2.0 "Nie martw się o element 2.0, jeśli używasz nowszej wersji - po prostu wskazuje minimalną wymaganą wersję. – rtpHarry

Odpowiedz

6

Jak już wspomnieli inni, nie można używać ActiveDirectoryMembershipProvider z AspNetWindowsTokenRoleProvider. Jeśli chcesz użyć ADMP z formami uwierzytelniania, masz kilka możliwości:

  1. Wykorzystanie w AuthorizationManager aka AzMan. - AzMan jest wbudowany w system Windows 2003+ i może wchodzić w interakcje z grupami Active Directory. Ponadto istnieje AuthorizationStoreRoleProvider wbudowany w .NET 2.0+, którego można używać do interakcji z nim. AzMan działa na zadania, operacje i role, w których prawdopodobnie twoja aplikacja byłaby zakodowana do działania w określonych zadaniach, które następnie można pogrupować w operacje, a następnie możesz utworzyć role, które mają uprawnienia do wykonywania różnych operacji. Istnieje aplikacja do zarządzania, która jest instalowana podczas instalacji AzMan, której można użyć do zarządzania zadaniami, operacjami i rolami. Jednak istnieją pewne minusy AzMan. Po pierwsze, AuthorizationStoreRoleProvider nie rozpoznaje zadań. Zamiast tego ładuje listę Roles z listą operacji. Dlatego też, chyba że utworzysz niestandardową wersję dostawcy, twoje aplikacje będą musiały szukać nazw operacji zamiast nazw zadań. Po drugie, to może być niedźwiedź do pracy w tej interakcji, na najniższym poziomie, jest nadal przez COM. Jeśli nie chcesz, aby administratorzy używali narzędzia AzMan, musisz napisać własne strony, aby zarządzać operacjami, rolami i członkostwem w rolach.

  2. Użyj SqlRoleProvider i odwzoruj role na nazwy użytkowników. Zaletą tego rozwiązania jest to, że jest bardzo prosty w realizacji. Możesz go używać po wyjęciu z pudełka, ponieważ RoleProvider działa na podstawie nazwy użytkownika, a nie UserId. W swoim kodzie wystarczy sprawdzić IsInRole, aby ustalić, czy dany użytkownik został przypisany do roli rozpoznanej przez Twój kod. Istotnym minusem jest to, że jest on nastawiony wyłącznie na nazwy użytkowników, a nie na grupy AD, a zatem nie ma możliwości, aby administrator używał narzędzi AD do zarządzania użytkownikami.Zamiast tego musisz napisać konsolę zarządzania, aby zarządzać przynależnością do roli. Ponadto zmiana nazwy użytkownika na poziomie AD wymagałaby aktualizacji listy znanych nazw użytkowników aplikacji.

  3. Napisz (lub zlokalizuj) niestandardowego AD RoleProvider, który honoruje grupy AD. Pisanie dostawcy roli niestandardowej nie jest przeznaczone dla osób o słabym sercu, ale dzięki temu administratorzy mogą zarządzać przynależnością do roli przy użyciu istniejących narzędzi AD.

0

Tak, masz rację; będzie działać tylko z uwierzytelnianiem formularzy Windows. Możesz to potwierdzić tutaj: http://msdn.microsoft.com/en-us/library/system.web.security.windowstokenroleprovider.aspx

Tylko sugestia. Wypróbuj AuthorizationStoreRoleProvider z AzManem (Authorization Manager). To działało dla mnie (wieki temu, więc nie pamiętam zbyt wiele).

+0

Czy AzMan jest wbudowany? Czy jest to nowy/dodatkowy plik do pobrania/instalacji? Jeśli tak, to gdzie? – Nate

+0

"Menedżer autoryzacji" jest dostarczany z systemem Windows Server. Wystarczy zaimportować biblioteki DLL do projektu, a ty jesteś gotowy. :) –

+0

Sprawdź ten adres URL: http://msdn.microsoft.com/en-us/library/ms998336.aspx Wyjaśnia cały proces, od instalacji AzMan. –

Powiązane problemy